0
MSSQL 2008R2TSQL查詢歷史記錄表MSSQL2008r2
我想要查詢存儲變化的開始和結束日期表,我想返回兩個日期之間的所有行,一個@StartDate和和@EndDate 。
這裏的示例表架構
CREATE TABLE dbo.History(
cKey INT NOT NULL
,vKey INT NOT NULL
,CreateDate DATETIME NOT NULL
,DeletedTime DATETIME NULL
)
所以我的查詢需要包括行,其中的[CREATEDATE]是< = @StartDate但其中發現的[DeletedTime] IS NULL,也當[CREATEDATE]是< = @StartDate和[DeletedTime]是< @EndDate。
由於[DeletedTime]列可以爲空,所以[DeletedTime]爲空的那些行仍然是當前/活動的。
以下SQL不起作用。僅返回[DeletedTime]爲空的行,即活動行。不包括那些在@StartDate和@EndDate之間刪除的行
SELECT * FROM dbo.History
WHERE @StartDate >= CreateDate
AND @EndDate <= ISNULL(DeletedTime, '2099-12-12 23:59:59')
任何想法的專家? 提前謝謝。
謝謝,但此函數返回行,其中的[DeletedTime]是@StartDate –
之前這似乎已經做到了。 WHERE((CreateDate <= @StartDate AND DeletedTime IS NULL) \t OR(CreateDate <= @StartDate和DeletedTime BETWEEN @StartDate AND @EndDate)) ' –
@Mountaineer:啊..很好! – DarkKnight