行を削除するために mysql クエリを実行しようとしていますが、タイムゾーンの問題に直面しています。サーバーは米国にあり、ユーザーはアジアにいます。テーブルに入力されるタイムスタンプはアジアです。アジア時間で行を削除できますか? これが私のクエリです。
mysql_query("DELETE FROM SMS_IN WHERE NOW() > sent_dt");
NOW()
はアジア時間ではなく、米国時間を使用しています。
CONVERT_TZを使用して、時間をユーザーのタイム ゾーンからサーバーのタイム ゾーンに変換できます。
SELECT CONVERT_TZ(NOW(), 'user time zone', 'server time zone');
例えば:
mysql_query("DELETE FROM SMS_IN WHERE CONVERT_TZ(NOW(), 'Asia/Hong_Kong', 'America/Montreal') > sent_dt");
global を変更するか、またはtime_zone
を使用して分離の時間数を調整することができます。これはおそらくあなたが知っていることです (そして、私たち全員のために [DST を除いて] 一定のままであることを願っています)。DATE_ADD
DATE_SUB
NOW()