MySQL_获取2个日期之间的所有日期

获取2个日期之间的所有日期

问题:查询对应日期范围内的具体日期

例如:获取某一个月的数据报表(想用sql一下子写完),然而数据库只有几天的记录信息

解决方法:sql、存储过程、变量控制、维护一个系统日期表...等


现在以sql的方式解决问题

输入:2022-4-10 ~ 2022-4-15
结果:
2022-4-11
2022-4-12
2022-4-13
2022-4-14
2022-4-15

sql

SELECT * FROM
    (
        SELECT adddate('1970-01-01',t4.i * 10000 + t3.i * 1000 + t2.i * 100 + t1.i * 10 + t0.i) selected_date
        FROM
            ( SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 
                                     UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 ) t0,
            ( SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 
                                     UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 ) t1,
            ( SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 
                                     UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 ) t2,
            ( SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 
                                     UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 ) t3,
            ( SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 
                                     UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 ) t4
    ) a
WHERE selected_date BETWEEN '2022-04-18'AND '2022-04-19'

结果

 

posted @ 2022-05-10 11:01  梅子猪  阅读(1364)  评论(0编辑  收藏  举报