Answers:
您需要使用DAYOFWEEK函数
如果在周六结束,则可以将任何日期更改为周六。
例如,此计算即将到来的星期六
SELECT DATE(NOW() + INTERVAL (7 - DAYOFWEEK(NOW())) DAY);
这将计算即将到来的星期日(您必须使用WEEKDAY函数)
SELECT DATE(NOW() + INTERVAL (6 - WEEKDAY(NOW())) DAY);
对于名为mytable的表,该表的Date列名为theDate,则您的总和为
星期六
SELECT COUNT(1) DateCount,EndOfWeekDate FROM
(
SELECT DATE(theDate + INTERVAL (7 - DAYOFWEEK(theDate)) DAY) EndOfWeekDate
FROM mytable
) A GROUP BY EndOfWeekDate;
星期日
SELECT COUNT(1) DateCount,EndOfWeekDate FROM
(
SELECT DATE(theDate + INTERVAL (6 - WEEKDAY(theDate)) DAY) EndOfWeekDate
FROM mytable
) A GROUP BY EndOfWeekDate;
试试看 !!!
CAVEAT如果您想要除周六和周日以外的其他任何周末,我早在2011年9月22日就编写了一种疯狂的算法,用于计算任何一天的开始和结束时间。