从上周的mysql查询中选择数据

时间:2015-08-09 14:40:25

标签: c# mysql sql

我有一个带有日期字段的表格,我想要选择上周,周六到周日(不是最近7天)的所有条目。

表值

Date               ID    Value
8/3/2015 8:03 PM    a     10        
8/4/2015 8:03 PM    b     20        
8/5/2015 8:03 PM    c     30    
8/6/2015 8:03 PM    d     40    
8/7/2015 8:03 PM    e     50    
8/9/2015 8:03 PM    f     60        
8/10/2015 8:03 PM   g     70    

我只想从最后选择id,b,c,d,e。我如何编写mysql查询?

1 个答案:

答案 0 :(得分:1)

这有点棘手。一种方法是尝试像week()这样的东西,但这在年初有问题。

另一种方法是在周日获取午夜日期并将其用于计算。我认为这个表达式就是这样:

 date_sub(curdate(), interval (weekday(curdate()) + 1) % 7) - 1 day)

然后您可以将其插入where子句:

select v.*
from values v
where v.date < date_sub(curdate(), interval (weekday(curdate()) + 1) % 7) - 1 day) and
      v.date >= date_sub(curdate(), interval (weekday(curdate()) + 1) % 7) - 8 day);

注意:此公式可以使用date上的索引。