SELECT
('2020-06-01' - INTERVAL DAY('2020-06-01') DAY) + INTERVAL s DAY AS d
FROM
(
SELECT
31 AS s
UNION ALL
SELECT
30
UNION ALL
SELECT
29
UNION ALL
SELECT
28
UNION ALL
SELECT
27
UNION ALL
SELECT
26
UNION ALL
SELECT
25
UNION ALL
SELECT
24
UNION ALL
SELECT
23
UNION ALL
SELECT
22
UNION ALL
SELECT
21
UNION ALL
SELECT
20
UNION ALL
SELECT
19
UNION ALL
SELECT
18
UNION ALL
SELECT
17
UNION ALL
SELECT
16
UNION ALL
SELECT
15
UNION ALL
SELECT
14
UNION ALL
SELECT
13
UNION ALL
SELECT
12
UNION ALL
SELECT
11
UNION ALL
SELECT
10
UNION ALL
SELECT
09
UNION ALL
SELECT
08
UNION ALL
SELECT
07
UNION ALL
SELECT
06
UNION ALL
SELECT
05
UNION ALL
SELECT
04
UNION ALL
SELECT
03
UNION ALL
SELECT
02
UNION ALL
SELECT
01
) m
WHERE
s <= DAY (LAST_DAY('2020-06-01'))
查询结果
下面还有没有截图完整,一直到06-01
其中 (LAST_DAY('2020-06-01') 查询6月最后一天的日期:2020-06-30 (这个函数区分闰年和平年)
DAY('2020-06-01')获取日期的天数
因此求7天前的某一天就是
SELECT now() AS '当前日期';
SELECT (now() - INTERVAL 7 DAY )AS '7天之前日期';