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

Isw*_*rya 9 mysql sql

我需要创建一个SSIS包,它将在一个table(T1)超过3个月(基于ALERT_TIMESTAMP)的记录中查看记录并将它们移动到另一个记录中table(T2)

我的查询是:

SELECT * FROM T1
WHERE (DATEDIFF([month], ALERT_TIMESTAMP, GETDATE()) > 3)
Run Code Online (Sandbox Code Playgroud)

Alert_timestampDatetime格式.例如:'10/26/2012 12:00:00 AM'

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

sof*_*dev 15

试试这个

select * from `table` where `yourfield` >= DATE_SUB(CURDATE(), INTERVAL 3 MONTH)
Run Code Online (Sandbox Code Playgroud)

几天,一年见下文.

DATE_SUB(CURDATE(), INTERVAL 15 DAY) /*For getting record specific days*/

DATE_SUB(CURDATE(), INTERVAL 1 YEAR) /*for getting records specific years*/
Run Code Online (Sandbox Code Playgroud)


对于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
Run Code Online (Sandbox Code Playgroud)

  • 这与 OP 要求的相反。您的解决方案将返回表中_年轻于_或_恰好_3个月的所有记录,而问题要求_旧_超过3个月的所有记录。你只需要用 `<` 改变 `>=` (4认同)