【发布时间】:2014-11-23 13:25:42
【问题描述】:
我有这张桌子:
**ID StartDate EndDate**
1 01/01/2012 03/01/2012
2 28/09/2013 02/10/2013
3 12/06/2011 15/06/2011
我需要这张桌子: 日期
**ID Date**
1 01/01/2012
1 02/01/2012
1 03/01/2012
2 28/09/2013
2 29/09/2013
2 30/09/2013
2 01/10/2013
2 02/10/2013
3 12/06/2011
3 13/06/2011
3 14/06/2011
3 15/06/2011
我有下一个 Sql 代码来重新启动 StartDate 和 EndDate + StartDate +EndDate 之间的日期:
declare @Start datetime
declare @end datetime
declare @request int
set @Start = '2014-09-28 06:53:04.560'
set @end = '2014-09-29 11:53:04.560'
set @request = 1
;with Dates as (
select @request as reqId,@Start as reqDate
union all
select reqId+1,DATEADD(hh,1,reqDate) from Dates
where reqDate < @end
)
select * from Dates
如何获得大量 StartDate-EndDate 输入的此结果?
【问题讨论】:
-
使用日历表使您的查询更加简单。 blog.jontav.com/post/9380766884/….
标签: sql sql-server date between