11

(に基づいて) 3 か月table(T1)以上前のレコードを調べて、別のレコードに移動する SSIS パッケージを作成する必要があります。ALERT_TIMESTAMPtable(T2)

私のクエリは次のとおりです。

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

Alert_timestamp列がDatetimeフォーマットされています。例えば:'10/26/2012 12:00:00 AM'

クエリを実行すると、 3 か月より古いすべてのレコードが表示されるはずですが、表示されません。

4

2 に答える 2

17

これを試して

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*/


アナンドの場合、クエリ

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
于 2012-12-17T10:19:30.403 に答える
2

あなたが投稿したのはMySQLではありません。MS SQL Server を使用していると仮定すると、ABS()関数を使用する必要があります。

SELECT   * FROM        T1
WHERE     ABS(DATEDIFF([month], ALERT_TIMESTAMP, GETDATE())) > 3
于 2012-12-17T10:18:19.040 に答える