Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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,如何在两个日期中获得日期列表 目前在我的booking表中,我有两个字段,如start\u at和ends\u at 如果我使用这样的查询 2020-06-04 (added dates from 2nd row) 2020-06-05 2020-06-06 2020-06-07 2020-06-08 2020-06-09 2020-08-19 (added dates from 1st row) 2020-08-20 2020-08-21 ......continua

如何在两个日期中获得日期列表

目前在我的
booking
表中,我有两个字段,如
start\u at
ends\u at

如果我使用这样的查询

 2020-06-04 (added dates from 2nd row)  
 2020-06-05
 2020-06-06
 2020-06-07
 2020-06-08
 2020-06-09

 2020-08-19 (added dates from 1st row)
 2020-08-20
 2020-08-21
 ......continuation
 2020-09-15
 2020-09-16
从预订中选择开始、结束

这将给我所有存在的记录

但我想唯一地列出所有日期记录

假设在记录的第一行
2020-08-19
2020-09-16

这将是输出

    2020-08-19
    2020-08-20
    2020-08-21
    ......continuation
    2020-09-15
    2020-09-16
第二排是
2020-06-04
2020-06-09

这将是

 2020-06-04
 2020-06-05
 2020-06-06
 2020-06-07
 2020-06-08
 2020-06-09
正如您所看到的,所有日期之间的间隔都在下拉列表中

最终的输出应该是,收集的日期将根据最近的数据进行安排

 2020-06-04 (added dates from 2nd row)  
 2020-06-05
 2020-06-06
 2020-06-07
 2020-06-08
 2020-06-09

 2020-08-19 (added dates from 1st row)
 2020-08-20
 2020-08-21
 ......continuation
 2020-09-15
 2020-09-16
为了防止某些日期重复,应将其作为一个日期进行计数/读取。因为所有的日子都安排好了。

对于MySQL 8+

WITH RECURSIVE
cte AS ( SELECT starts_at, ends_at, starts_at single_date 
         FROM booking
         UNION ALL
         SELECT starts_at, ends_at, single_date + INTERVAL 1 DAY
         FROM cte
         WHERE single_date < ends_at )
SELECT DISTINCT single_date
FROM cte
ORDER BY 1;

这就是您想要的。我们可以不创建新表,只创建一个查询来完成吗?请指定您的MySQL版本。是否需要MySQL?嗯,可能对所有版本都适用的查询是必须的。顺便说一句,这是我的mysql“
mysql版本14.14发行版5.6.37,用于Linux(x86_64),使用EditLine包装器”
,但在我的本地版本中,我使用xampp/PHPMYADMIN,您需要一些方法来生成数字和日期..我认为如果没有类似的东西,您不能..您可以始终创建一个临时表..使用它并在查询后扔掉它!