MySQL 選択クエリで UTC 日付をローカル タイム ゾーンに変換する
問題
A MySQLクエリでは、UTC タイムスタンプを格納する「displaytime」列を現地時間に変換する必要があります。ゾーン。ただし、CONVERT_TZ() 関数を使用しても期待した結果が得られません。
回答
1.エラー メッセージを確認する
エラー メッセージを確認して、CONVERT_TZ() が機能しない理由を特定します。
2.互換性のある列の型を確認する
CONVERT_TZ() では、入力列がタイムスタンプまたは日付のデータ型である必要があります。 「表示時間」列のデータ型を確認します。
3.正しい構文を使用する
CONVERT_TZ() の正しい構文は次のとおりです。
CONVERT_TZ(timestamp, source_timezone, destination_timezone)
4.使用例
たとえば、表示時間を UTC から米国東部時間 (-05:00 GMT) に変換するには、
SELECT CONVERT_TZ(displaytime, 'UTC', 'America/New_York');
5 を使用します。タイム ゾーン テーブルの確認
MySQL タイムゾーン テーブルが適切に初期化されていることを確認します。次のコマンドを実行して確認します。
SELECT * FROM mysql.time_zone; SELECT * FROM mysql.time_zone_name;
6.タイム ゾーン データのロード
タイム ゾーン テーブルが空の場合は、mysql_tzinfo_to_sql プログラムを使用してそれらをロードします:
mysql_tzinfo_to_sql /usr/share/zoneinfo
以上がMySQL SelectクエリでUTC日付をローカルタイムゾーンに変換する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。