如何在sql server 2008中查找日期?

时间:2011-02-24 08:50:19

标签: sql-server sql-server-2008

我给两个不同的日期作为输入。我想找到,两个约会之间的日期是什么..

例如:

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

是否有任何功能可以找到日期...

否则怎么找?

3 个答案:

答案 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天时,此解决方案不适用。