2013-03-18 112 views
1

我有一個日期字段,我希望在日期減去給定的天數時返回結果。例如,WHERE @today - 30會給我最近30天的數據。我怎樣才能做到這一點?在T-SQL中計算日期範圍

+0

SQL Server或Sybase?至少在SQL Server中,如果'@ today'是一個'datetime'變量,那麼'SELECT * FROM dbo.SomeTable WHERE DateColumn> = @ today-30'實際上可以做你想做的事情。但是,無論如何,你要做什麼並不明顯,所以請詳細說明你的問題以及你的目標是什麼。 – Pondlife 2013-03-18 18:20:13

回答

0

爲了計算日期範圍,你可以使用: -

WHERE date_column BETWEEN date1 AND date2 

現在減去你可以使用: -

DATEADD(DAY, -30, '9/1/2011') 

som例如:=

WHERE datecolumn BETWEEN dateAdd(day,-30,date1) AND date2 
+0

我正在尋找更具體的是今天減去多組天。 30天=今天 - 30,60天=今天 - 60,120天=今天-120等等... – tsqln00b 2013-03-18 18:08:49

+0

因此,如果你正在創建一個存儲過程,那麼你可以創建一個輸入參數,比如@days (30,60,120),你可以像這樣使用它: - WHERE datecolumn BETWEEN dateAdd(day, - @ days,date1)和date2希望能解決你的查詢嗎? – 2013-03-18 18:12:48

0

您可以使用dateAdd。的day語法可能會因你的DBMS

WHERE datecolumn BETWEEN dateAdd(day,-30,getDate()) AND getDate() 

WHERE datecolumn > dateAdd(day,-30,getDate())