我想显示一条特定记录的两个日期之间的所有日期
这是表格:
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
任何帮助将不胜感激
答案 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