我需要创建一个SSIS包,该包将在 3个月之前的table(T1)
(基于ALERT_TIMESTAMP
)中查看记录并将其移至另一个{{ 1}}
我的查询是:
table(T2)
SELECT * FROM T1
WHERE (DATEDIFF([month], ALERT_TIMESTAMP, GETDATE()) > 3)
列格式为Alert_timestamp
。例如:Datetime
当我运行查询时,它应显示早于 3个月的所有记录,但事实并非如此。
答案 0 :(得分:15)
试试这个
select * from `table` where `yourfield` >= DATE_SUB(CURDATE(), INTERVAL 3 MONTH)
几天,例如,见下文。
DATE_SUB(CURDATE(), INTERVAL 15 DAY) /*For getting record specific days*/
DATE_SUB(CURDATE(), INTERVAL 1 YEAR) /*for getting records specific years*/
<小时/> 对于Anand,请查询
BETWEEN DATE_SUB( CURDATE( ) ,INTERVAL 6 MONTH ) AND DATE_SUB( CURDATE() ,INTERVAL 3 MONTH )
/* For Getting records between last 6 month to last 3 month
答案 1 :(得分:2)
你发布的不是MySQL。假设您使用的是MS SQL Server,则应使用ABS()
函数。
SELECT * FROM T1
WHERE ABS(DATEDIFF([month], ALERT_TIMESTAMP, GETDATE())) > 3