SQL Server其中start_date和End_date之间的日期

时间:2011-05-21 08:08:13

标签: sql sql-server sql-server-2005 tsql

我有事件表,我需要在几天之间选择记录。我的陈述看起来像

Select 
    Event_ID
    ,Event_Type
    ,Event_Time
From 
    Event_Table
Where 
    CONVERT(char(8),Event_Table.Event_time,112) BETWEEN '20110501' AND '20110505'

Event_time是DateTime格式。

现在,如果我需要声明在任何时候运行Date_start和Date_End之前请求日期,那么每件事情看起来都很好。我们的想法是在scrpt运行时随时请求新的日期

1 个答案:

答案 0 :(得分:3)

declare @EndDate datetime 
set @EndDate = getdate()

declare @StartDate datetime
set @StartDate= dateadd(day, -5, @EndDate)

select Event_ID, Event_Type, Event_Time
from Event_Table
where 
    Event_Time >= @StartDate and
    Event_Time < @EndDate

如果您需要包含@EndDate,那么

select Event_ID, Event_Type, Event_Time
from Event_Table
where 
    Event_Time >= @StartDate and
    Event_Time < dateadd(day, 1, @EndDate)