在一系列日期之间获取日期

16 sql t-sql sql-server datetime date-range

我需要使用SQL Server 2005获取日期范围内的所有日期

Inc*_*tly 57

干得好:

DECLARE @DateFrom smalldatetime, @DateTo smalldatetime;
SET @DateFrom='20000101';
SET @DateTo='20081231';
-------------------------------
WITH T(date)
AS
( 
SELECT @DateFrom 
UNION ALL
SELECT DateAdd(day,1,T.date) FROM T WHERE T.date < @DateTo
)
SELECT date FROM T OPTION (MAXRECURSION 32767);
Run Code Online (Sandbox Code Playgroud)


Ed *_*ess 8

如果您在表格中有日期,只想在两个日期之间选择可以使用的日期

select * from yourTable where yourDate between date1 and date2
Run Code Online (Sandbox Code Playgroud)

如果你想通过循环来创建日期,你可以用一个日期填充一个临时表,然后从中选择.


小智 5

DECLARE @Date1 DATE='2016-12-21', @Date2 DATE='2016-12-25'
SELECT DATEADD(DAY,number,@Date1) [Date] FROM master..spt_values WHERE type = 'P' AND DATEADD(DAY,number,@Date1) <= @Date2
Run Code Online (Sandbox Code Playgroud)