0

我一直在寫一些關於SQL Server的查詢來學習。兩個日期之間的差異

我想知道如何在SQL查詢中獲得90天前的差異?

+3

查找DATEDIFF():http://msdn.microsoft.com/en-us/library/ms189794.aspx –

+1

以分,秒,是什麼? – 2011-08-18 14:48:29

+2

今天和90天前的區別?我相當肯定這是一個常數(忽略DST變化,閏秒等):-) –

回答

0

試試這個返回的日期和時間整整90年前:

SELECT GETDATE()-90 

輸出:

----------------------- 
2011-05-20 10:55:12.360 

(1 row(s) affected) 

這會給你的日期只有90天前,與一個鈦我的00:00:00.000:

SELECT DATEADD(day,DATEDIFF(day,0,GETDATE()),-90) 

輸出:

----------------------- 
2011-05-20 00:00:00.000 

(1 row(s) affected) 
2

你想DATEADD,不DATEDIFF,你需要決定是否需要90天前曾:

SELECT DATEADD(day,-90,CURRENT_TIMESTAMP) 

或3個月前:

SELECT DATEADD(month,-3,CURRENT_TIMESTAMP) 
+0

謝謝:),我明白了。 謝謝你保鏢 謝謝Damien_The_Unbeliever – csharper

+0

@Aaron Bertrand:好點 - 並不意味着倉促,只是看到OP是相當新的,還沒有接受答案,所以我想指出這是禮貌和正確要做的事。 –

0

這將在3個月前(不是90天前)當天的午夜正確地輪到,這似乎是你想要的(08-18 - > 05-18是92天后有兩個31秒)。

... 
WHERE column >= DATEADD(MONTH, -3, 
    DATEADD(DAY, DATEDIFF(DAY, '20000101', CURRENT_TIMESTAMP), '20000101'));