我给两个不同的日期作为输入。我想找到,两个约会之间的日期是什么..
例如:
1'st Input is : 2011-02-20
2'nd input is : 2011-02-25
Output is:
2011-02-20
2011-02-21
2011-02-22
2011-02-23
2011-02-24
2011-02-25
是否有任何功能可以找到日期...
否则怎么找?
答案 0 :(得分:2)
您可以使用CTE来实现这一目标。
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
SET @StartDate = '2011-02-20'
SET @EndDate = '2011-02-25'
;WITH GetDates AS
(
SELECT 1 as counter, @StartDate AS Date
UNION ALL
SELECT counter + 1, DATEADD( day, counter, @StartDate )
FROM GetDates
WHERE DATEADD( day, counter, @StartDate ) <= @EndDate
)
SELECT Date FROM GetDates
答案 1 :(得分:2)
请参阅:
Why should I consider using an auxiliary calendar table?
日历表可以做得更多 更容易开发任何解决方案 涉及日期的商业模式。 最后我查了一下,这包括了 几乎任何商业模式都可以 想到某种程度。不变 最终需要的问题 冗长,复杂,低效 方法包括以下内容 问题:工作日数 x和y之间? ...
答案 2 :(得分:0)
SELECT Date = @StartDate + number
FROM master..spt_values
WHERE type = 'P'
AND number BETWEEN 0 AND DATEDIFF(day, @StartDate, @EndDate)
注意:当两个日期之间的距离超过2047天时,此解决方案不适用。