如何通过单个查询显示存储在表中的两个日期之间的所有日期?

时间:2019-01-29 08:48:34

标签: mysql sql

我想显示一条特定记录的两个日期之间的所有日期

这是表格:

ID Start_Date  End_Date
-------------------------
1  2013-01-14  2013-01-18
2  2013-02-01  2013-02-04

现在我想获取从日期到日期之间的所有日期。

预期产量

ID Date
-------------
1  2013-01-14
1  2013-01-15
1  2013-01-16
1  2013-01-17
1  2013-01-18
2  2013-02-01
2  2013-02-02
2  2013-02-03
2  2013-02-04

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

编辑::这在sql服务器上有效(我不好,没有看到标签)。可能会为mysql所做的事情以及它支持相同的日期函数

尝试类似这样的事情,用您的表值替换我的硬编码值。这会带回2个日期之间的所有日期,包括开始日期。如果您也想保留最长日期,则必须修改我的代码

create table #datediff
(
id int,
dates date
)

declare @min date, @max date,@df int

set @min = '2018-01-30'
set @max = '2018-02-5'
set @df = DATEDIFF(DAY,@min,@max)


while @df <> 0
begin
    insert into #datediff
    Values ( 1, DATEADD(D,-1,@max))


    set @df = @df -1
    set @max = DATEADD(D,-1,@max)       
end


select * from #datediff

drop table #datediff