MYSQL>使用yearweek()如何选择过去一周

时间:2016-09-21 13:45:15

标签: mysql

如何选择上周的所有记录(从上周一开始)?

我正在尝试使用

在我的SQL查询中

yearweek(),但我只能选择本周记录

4 个答案:

答案 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天