2

行を削除するために mysql クエリを実行しようとしていますが、タイムゾーンの問題に直面しています。サーバーは米国にあり、ユーザーはアジアにいます。テーブルに入力されるタイムスタンプはアジアです。アジア時間で行を削除できますか? これが私のクエリです。

mysql_query("DELETE FROM SMS_IN WHERE NOW() > sent_dt");

NOW()はアジア時間ではなく、米国時間を使用しています。

4

2 に答える 2

2

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");
于 2012-05-15T19:57:10.420 に答える
0

global を変更するか、またはtime_zoneを使用して分離の時間数を調整することができます。これはおそらくあなたが知っていることです (そして、私たち全員のために [DST を除いて] 一定のままであることを願っています)。DATE_ADDDATE_SUBNOW()

于 2012-05-15T12:16:18.147 に答える