Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择不使用表格的两个日期之间的所有日期(生成日期列表)_Mysql - Fatal编程技术网

Mysql 选择不使用表格的两个日期之间的所有日期(生成日期列表)

Mysql 选择不使用表格的两个日期之间的所有日期(生成日期列表),mysql,Mysql,有没有一种方法可以在不使用任何MySQL表的情况下获取两个日期之间的所有日期 比如: SELECT date BETWEEN '2012-02-10' AND '2012-02-15' 这将导致: out put date list 2012-02-10 ... 2012-02-15 以下是查询: 这个查询在两个数据库中都给出了正确的结果:MariaDB和MySQL 程序中的一个循环可能会重复检查我最近给出的答案,我在表格中保存了日期,您可以使用select part hi@kruti

有没有一种方法可以在不使用任何MySQL表的情况下获取两个日期之间的所有日期

比如:

SELECT date BETWEEN '2012-02-10' AND '2012-02-15'   
这将导致:

out put date list
2012-02-10
...
2012-02-15
以下是查询: 这个查询在两个数据库中都给出了正确的结果:MariaDB和MySQL


程序中的一个循环可能会重复检查我最近给出的答案,我在表格中保存了日期,您可以使用select part hi@kruti patel,谢谢您的查询。我轻松地从中创建了一个存储过程,请您解释一下这个查询背后的逻辑。提前谢谢。hi@MatijaBaric,From子句将创建组合值,select子句将从startdate开始,每次将date递增1,直到两个日期之间的差值未达到为止。
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')