在sql中显示超过3个月的记录

时间:2012-12-17 10:08:40

标签: mysql sql

我需要创建一个SSIS包,该包将在 3个月之前的table(T1)(基于ALERT_TIMESTAMP)中查看记录并将其移至另一个{{ 1}}

我的查询是:

table(T2)

SELECT * FROM T1 WHERE (DATEDIFF([month], ALERT_TIMESTAMP, GETDATE()) > 3) 列格式为Alert_timestamp。例如:Datetime

当我运行查询时,它应显示早于 3个月的所有记录,但事实并非如此。

2 个答案:

答案 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