Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在sql中显示超过3个月的记录_Mysql_Sql - Fatal编程技术网

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

Mysql 在sql中显示超过3个月的记录,mysql,sql,Mysql,Sql,我需要创建一个SSIS包,该包将遍历一个表(T1)中早于3个月的记录(基于ALERT\u TIMESTAMP),并将它们移动到另一个表(T2) 我的问题是: SELECT * FROM T1 WHERE (DATEDIFF([month], ALERT_TIMESTAMP, GETDATE()) > 3) Alert\u timestamp列采用Datetime格式。例如:'10/26/2012 12:00:00 AM' 当我运行查询时,它应该显示所有早于3个月的记录,但它没有显示。您发

我需要创建一个SSIS包,该包将遍历一个
表(T1)
中早于3个月的记录(基于
ALERT\u TIMESTAMP
),并将它们移动到另一个
表(T2)

我的问题是:

SELECT * FROM T1
WHERE (DATEDIFF([month], ALERT_TIMESTAMP, GETDATE()) > 3)
Alert\u timestamp
列采用
Datetime
格式。例如:
'10/26/2012 12:00:00 AM'


当我运行查询时,它应该显示所有早于3个月的记录,但它没有显示。

您发布的不是MySQL。假设您使用的是MS SQL Server,则应使用
ABS()
函数

SELECT   * FROM        T1
WHERE     ABS(DATEDIFF([month], ALERT_TIMESTAMP, GETDATE())) > 3
试试这个

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

你能提供表格的结构吗?日期格式设置是什么?执行select getdate()时的格式是什么?这与OP要求的格式相反。您的解决方案将返回表中所有小于或正好为3个月的记录,而问题询问的是所有大于3个月的记录。您只需使用