通过存储过程检查DB中的DateTime是否超过90天

Mun*_*ish 7 sql t-sql sql-server datetime sql-server-2005

UPDATE

显然我没有包含足够的数据,对不起!

当'campaign_Date'超过90天时,我需要设置'campaign_Status'= 6.


嗨,

我有一个存储DATETIME的列(campaign_Date).使用存储过程我需要检查存储的日期是否为90天(或更长).

任何帮助都会很棒.

谢谢.

Qua*_*noi 11

这将返回所有旧广告系列:

SELECT  *
FROM    mytable
WHERE   campaign_Date <= DATEADD(day, -90, GETDATE())
Run Code Online (Sandbox Code Playgroud)

这将选择1广告系列是否旧,0否则:

SELECT  CASE WHEN campaign_Date <= DATEADD(day, -90, GETDATE()) THEN 1 ELSE 0 END
FROM    mytable
Run Code Online (Sandbox Code Playgroud)

请注意,第一个查询条件是sargable:它将允许使用索引来过滤日期.

这将更新所有旧广告系列的状态6:

UPDATE  mytable
SET     campaign_status = 6
WHERE   campaign_Date <= DATEADD(day, -90, GETDATE())
Run Code Online (Sandbox Code Playgroud)


Raj*_*ore 6

请参阅DateAdd函数

http://msdn.microsoft.com/en-us/library/ms186819.aspx

SELECT *
FROM MyTable
WHERE Campaign_Date <= DateAdd (d, -90, GetDate())
Run Code Online (Sandbox Code Playgroud)