MySQLは、更新時間が数時間以内のデータをどのようにクエリしますか

  MySQLデータベーステーブルtbl_mgm_testにはフィールドrec_upd_ts(レコード更新時間)があり、データ型はタイムスタンプ、非null制約はNOT NULL、デフォルト値はDEFAULT CURRENT_TIMESTAMP ON UPDATECURRENT_TIMESTAMPです。

  タイトルのように、3時間以内に更新されたデータをクエリする方法は?SQLステートメントは次のとおりです。

SELECT * FROM tbl_mgm_test WHERE rec_upd_ts >= DATE_SUB(NOW(), INTERVAL 3 HOUR);

SELECT * FROM tbl_mgm_test WHERE TIMESTAMPDIFF(SECOND , rec_upd_ts, NOW()) <= 3*60*60;

SELECT * FROM tbl_mgm_test WHERE rec_upd_ts >= DATE_ADD(NOW(),INTERVAL -3 HOUR);

  注:次の文では、現在時刻から3時間以内のデータを正確に見つけることはできませんが、時間単位時間と現在時間の3時間以内のデータしか見つけることができません。クエリされたデータには、3時間以内と3時間を超えるデータが含まれます。ただし、4時間未満のデータ(たとえば、現在の時刻は2020-09-21 10:58:20、以下の文は2020-09-21 07:58:20以降のデータを正確に見つけることができません、データはデータを見つけました2020-09-21 06:58:20以降)。

SELECT * FROM tbl_mgm_test WHERE TIMESTAMPDIFF(HOUR , rec_upd_ts, NOW()) <= 3;

おすすめ

転載: blog.csdn.net/piaoranyuji/article/details/108704274