3

post_tsという名前の日時フィールドを持つtxn (トランザクション) テーブルがあります。これは、トランザクションの日付を表すフィールドです。Spring Batch を使用してバッチ ジョブ (日曜日に実行される毎週のジョブであると想定されている) のコードを書いています。私は仕事を実行しています。

クエリに適用される他の何百万ものビジネス ルールとは別に、(現在の日付) から (現在の日付 - 7) までのトランザクションが必要です。

4

3 に答える 3

3

これを実現するには、mysql DATEDIFF 関数を使用できます。

SELECT * 
FROM txn 
WHERE DATEDIFF( CURDATE( ) , `post_ts` ) <= 7;
于 2012-06-02T06:58:21.663 に答える
2

日付部分よりも精度が必要ない場合 (時間、分、秒を考慮しない場合)、次の関数を使用できますDATEDIFF

SELECT *
FROM txn
WHERE DATEDIFF( NOW(), post_ts ) <= 7;

編集:答えを変更しました。TIMEDIFFの代わりに関数を最初に使用したため、間違っていましたDATEDIFF

TIMEDIFF時間、分、...DATEDIFFの差を示しますが、時:分:秒の部分を無視して、日付部分の差を示します。

于 2012-06-02T07:02:45.297 に答える
1
select 
    *
from 
    txn
where
    TO_DAYS(NOW()) - TO_DAYS(post_ts) <= 7;
于 2012-06-02T06:55:53.650 に答える