[英]MySQL : first day of the week and last day of the week not working as desired
[英]MySQL - First & Last Day of Previous Week
我试图在MySQL中获得上周的第一天和最后一天,其中第一天和最后一天分别是星期一和星期日。
例如,如果今天(2017年3月1日)是执行SQL的时间,我想获得:
我已经尝试过以下方法以及各种各样的方法,但是都没有成功。
SELECT DATE_ADD(curdate(), INTERVAL(-WEEKDAY(curdate())) DAY);
在当前一周的任何时间执行,是否有可能获得这些结果?
选择上一周的第一天和最后一天:
SELECT
(curdate() - INTERVAL((WEEKDAY(curdate()))+1) DAY) as e,
(curdate() - INTERVAL((WEEKDAY(curdate()))+7) DAY) as s
小号:2017-02-20
e:2017-02-26
如果要过滤上周的表行:
SELECT * FROM tblName
WHERE dateCol >= (curdate() - INTERVAL((WEEKDAY(curdate()))+7) DAY)
AND dateCol < (curdate() - INTERVAL((WEEKDAY(curdate()))+1) DAY)
ORDER BY dateCol DESC -- or ASC
干得好:
SELECT FirstDay, DATE_ADD(FirstDay, INTERVAL 6 DAY) as LastDay
FROM(
SELECT DATE_ADD(DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) DAY), INTERVAL -1 WEEK) as FirstDay) a
这是SQL Fiddle 。
上周的第一天
SELECT SUBDATE(SUBDATE(CURDATE(),7), WEEKDAY(CURDATE()));
上周的最后一天
SELECT ADDDATE(SUBDATE(CURDATE(),7), 6 - WEEKDAY(CURDATE()));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.