不使用表格选择两个日期之间的所有日期(生成日期列表) [英] Select all dates between two dates not using a table (generate list of dates)

查看:63
本文介绍了不使用表格选择两个日期之间的所有日期(生成日期列表)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有一种方法可以获取两个日期之间的所有日期而无需使用任何MySQL表

Is there a way to get all dates between two dates without using any MySQL table

类似:

SELECT date BETWEEN '2012-02-10' AND '2012-02-15'   

这将导致以下结果:

out put date list
2012-02-10
...
2012-02-15

推荐答案

以下是查询:
该查询在两个数据库中均给出正确的结果:MariaDB& MySQL.

Here is the query:
This query gives proper result in both the databases : MariaDB & MySQL.

SELECT ADDDATE('2012-02-10', INTERVAL @i:=@i+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('2012-02-15', '2012-02-10')

这篇关于不使用表格选择两个日期之间的所有日期(生成日期列表)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆