gpt4 book ai didi

MySQL选择上周的数据

转载 作者:行者123 更新时间:2023-11-30 00:50:36 24 4
gpt4 key购买 nike

我想知道如何选择上周的所有数据?周一到周五之间,假设今天是周一。我实际上没有日期时间格式列。

这是我迄今为止尝试过的:

SELECT * FROM logs
WHERE WEEKDAY(CONCAT(year,'-',month,'-',day)) BETWEEN 0 AND 4
AND YEARWEEK( date_added2 ) = YEARWEEK( CURRENT_DATE( ) - INTERVAL 7 DAY) AND deleted='n';

这是我的表,表日志:

enter image description here

最佳答案

你能试试这个吗?你可以在这里测试 http://www.sqlfiddle.com/#!2/3989b1/3/0

SELECT *
FROM logs,
(SELECT (CURRENT_DATE() - INTERVAL (WEEKDAY(CURRENT_DATE()) + 1 ) % 7 DAY) AS sun_day) t1
WHERE
logs.date_added2 BETWEEN t1.sun_day - INTERVAL 6 DAY
AND t1.sun_day - INTERVAL 2 DAY;

工作原理

以下查询返回星期几

SELECT '2014-01-09' - INTERVAL (WEEKDAY('2014-01-09') + 1 ) % 7 DAY;
+--------------------------------------------------------------+
| '2014-01-09' - INTERVAL (WEEKDAY('2014-01-09') + 1 ) % 7 DAY |
+--------------------------------------------------------------+
| 2014-01-05 |
+--------------------------------------------------------------+

SELECT '2014-01-10' - INTERVAL (WEEKDAY('2014-01-10') + 1 ) % 7 DAY;
+--------------------------------------------------------------+
| '2014-01-10' - INTERVAL (WEEKDAY('2014-01-10') + 1 ) % 7 DAY |
+--------------------------------------------------------------+
| 2014-01-05 |
+--------------------------------------------------------------+

因此,t1.sun_day - INTERVAL 6 表示上周的星期一,t1.sun_day - INTERVAL 2 DAY 表示上周的星期五。

mysql> SELECT @sunday := (CURRENT_DATE() - INTERVAL (WEEKDAY(CURRENT_DATE()) + 1 ) % 7 DAY) AS sunday;
+------------+
| sunday |
+------------+
| 2014-01-05 |
+------------+

mysql> SELECT @sunday - INTERVAL 6 DAY, @sunday - INTERVAL 2 DAY;
+--------------------------+---------------------------+
| @sunday - INTERVAL 6 DAY | @sunday - INTERVAL 2 DAY |
+--------------------------+---------------------------+
| 2013-12-30 | 2014-01-03 |
+--------------------------+---------------------------+

因此,logs.date_added2 BETWEEN t1.sun_day - INTERVAL 6 DAY AND t1.sun_day - INTERVAL 2 DAY 将查找从星期一到星期五的日志。

关于MySQL选择上周的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21014762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com