post_tsという名前の日時フィールドを持つtxn (トランザクション) テーブルがあります。これは、トランザクションの日付を表すフィールドです。Spring Batch を使用してバッチ ジョブ (日曜日に実行される毎週のジョブであると想定されている) のコードを書いています。私は仕事を実行しています。
クエリに適用される他の何百万ものビジネス ルールとは別に、(現在の日付) から (現在の日付 - 7) までのトランザクションが必要です。
これを実現するには、mysql DATEDIFF 関数を使用できます。
SELECT *
FROM txn
WHERE DATEDIFF( CURDATE( ) , `post_ts` ) <= 7;
日付部分よりも精度が必要ない場合 (時間、分、秒を考慮しない場合)、次の関数を使用できますDATEDIFF
。
SELECT *
FROM txn
WHERE DATEDIFF( NOW(), post_ts ) <= 7;
編集:答えを変更しました。TIMEDIFF
の代わりに関数を最初に使用したため、間違っていましたDATEDIFF
。
TIMEDIFF
時間、分、...DATEDIFF
の差を示しますが、時:分:秒の部分を無視して、日付部分の差を示します。
select
*
from
txn
where
TO_DAYS(NOW()) - TO_DAYS(post_ts) <= 7;