使用星期一開始的函數WEEKDAY()來計算它。
e.g:
where WEEKDAY(DAY) = 'Monday';
超過一天使用in關鍵字:
where WEEKDAY(DAY) in ('Monday', 'Tuesday','Friday');
當你使用别名時,你必須使用而不是在哪裡:
having WEEKDAY(DAY) in ('Monday', 'Wednesday');
最終查詢:
SELECT ADDDATE('2018-03-01', INTERVAL @i:[email protected]+1 DAY) AS DAY
FROM (
SELECT a.a
FROM (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS a
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS b
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS c
) a
JOIN (SELECT @i := -1) r1
WHERE
@i < DATEDIFF('2018-03-20', '2018-03-01') having WEEKDAY(DAY) in
('Monday', 'Wednesday');