2013-03-18 120 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())