0

重複の可能性:
MySQL テーブル行の時刻と日付のスタンプ

INSERT ステートメントが実行された日時を保存する最良の方法は何ですか? クエリに Now() 関数を含めますか? それができたら、72時間が経過したかどうかを計算することはできますか?

4

2 に答える 2

1

CURRENT_TIMESTAMPの列のデフォルト値で datetime 属性を定義する場合、明示的な値を指定する必要はありません。タイプをTIMESTAMPとして定義すると、特に動作をオーバーライドしない限り、レコードが変更されるたびに現在の時刻に更新されます。

72時間が経過したかどうかを計算することはできますか?

はい - ただし、すべての静的計算を比較操作の片側に置くようにしてください。

SELECT *
FROM yourtable
WHERE NOW() - INTERVAL 72 HOURS > yourtable.created_time;

よりも速くなります....

SELECT *
FROM yourtable
WHERE NOW()> yourtable.created_time + INTERVAL 72 HOURS;

作成時間のインデックスがなくても。作成時間にインデックスがある場合、最初のクエリはそれを使用しませんが、2 番目のクエリははるかに高速になります。

于 2012-10-12T09:17:20.340 に答える