Java 基于周数从MYSQL检索数据
我在MYSQL中有一个表,如下所示:Java 基于周数从MYSQL检索数据,java,mysql,sql,date,select,Java,Mysql,Sql,Date,Select,我在MYSQL中有一个表,如下所示: proj_id|hoursWorked|Date. 日期字段的类型为日期;我希望根据基于java的web应用程序中项目的给定周数从表中检索所有条目。请帮助我实现这一目标 我无法编写一个允许我这样做的查询。使用 如果您只想获取本周的记录,可以这样做 select * from your_table where week(`Date`) = week(curdate()) 使用MySQL WEEK函数 SELECT WEEK(dateColumn) FR
proj_id|hoursWorked|Date.
日期字段的类型为日期;我希望根据基于java的web应用程序中项目的给定周数从表中检索所有条目。请帮助我实现这一目标
我无法编写一个允许我这样做的查询。使用
如果您只想获取本周的记录,可以这样做
select * from your_table
where week(`Date`) = week(curdate())
使用MySQL WEEK函数
SELECT WEEK(dateColumn)
FROM...
WHERE WEEK(dateColumn) = 1
来自MySQL文档
此函数用于返回日期的周数。双参数形式
使用“每周”可以指定一周是从星期天开始还是从星期天开始
星期一,以及返回值是否应在0到
53或从1到53
不要使用像WHERE WEEKcolumn=something这样的东西——这是一个性能杀手:它将计算所有行上的周数,即使它们不匹配。除此之外,它还将使此列无法使用索引
而是根据数据类型计算绝对开始和结束日期或时间点,然后使用BETWEEN。这将不对不匹配的行进行计算,并允许使用索引
经验法则:如果您可以选择对常量和字段进行计算,请使用前者。您尝试过哪些查询?你看过关于这个主题的MySQL文档了吗?我尝试过在日期上使用减法函数。周数将与给定的日期相关,例如本例中的项目开始日期。你可以使用任何你喜欢的日期并从中提取周数。查看我的更新。是否有方法指定年份和星期?例如,我有2012年和2013年的数据,在进行选择时,我只需要2013年的记录。从my_表中选择*,其中weekDate=2013-50我可以做类似的事情吗???@GovindKailas:@juergen它似乎不起作用从my_表中选择*,其中yearweekDate=201350如果我计算相对于某个固定日期的周数,如何使用Week函数。试试,其中WEEKdateColumn=WEEKCURDATE@JW你不同意尤金瑞克在上面的回答中所说的吗?为了更好地理解,我只想问一个简单的问题。@Bhaviksha我当然同意,因为在列名周围使用函数会杀死索引D@JW那么我想,尤金瑞克的答案在性能和速度方面更好。谢谢你的回复。圣诞快乐。意思是说你建议我必须找到给定周数的开始日期和结束日期,然后使用这些日期之间的间隔来获取给定周数的数据。如果我搞错了,请纠正我。这正是我的想法。我不熟悉Java基类库,但我所熟悉的所有环境都有函数,可以在几行代码中执行此操作。
SELECT WEEK(dateColumn)
FROM...
WHERE WEEK(dateColumn) = 1