如何选择上周的所有记录(从上周一开始)?
我正在尝试使用
在我的SQL查询中 yearweek()
,但我只能选择本周记录
答案 0 :(得分:1)
YEARWEEK运算符采用模式选项,可让您在星期一开始一周。 然后只查询NOW()减去1的YEARWEEK
SELECT * FROM table
WHERE YEARWEEK(timestamp,1)=YEARWEEK(NOW(),1)-1
答案 1 :(得分:0)
请参阅DAYOFWEEK()
没有看到你的表格结构,从这开始并根据你的需要进行调整
SELECT * FROM table
WHERE date >= curdate() - INTERVAL DAYOFWEEK( curdate() )+ 7 DAY
答案 2 :(得分:0)
这是一种方法。首先,我们需要从当前日期的星期一开始,所以我们可以使用以下技术
以下将始终给出当周的星期一
mysql> select date_sub(curdate(), interval weekday(curdate()) day) as d ;
+------------+
| d |
+------------+
| 2016-09-19 |
+------------+
现在要获得上周的星期一,我们可以将上述内容调整为
mysql> select date_sub(date_sub(curdate(), interval weekday(curdate()) day), interval 7 day) as d ;
+------------+
| d |
+------------+
| 2016-09-12 |
+------------+
最后检索我们可以做的数据
select * from your_table
where
date_column >= date_sub(date_sub(curdate(), interval weekday(curdate()) day), interval 7 day)
http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_weekday
最好是处理日期计算,即应用程序级别的上周一,然后将值传递给查询。
答案 3 :(得分:-2)
尝试一下:
YEARWEEK(CURDATE())和CURDATE()之间的日期-间隔7天