ホームページ >データベース >mysql チュートリアル >MySQL SelectクエリでUTC日​​付をローカルタイムゾーンに変換する方法?

MySQL SelectクエリでUTC日​​付をローカルタイムゾーンに変換する方法?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-26 04:21:09884ブラウズ

How to Convert UTC Dates to Local Time Zone in MySQL Select Query?

MySQL 選択クエリで UTC 日付をローカル タイム ゾーンに変換する

問題

「displaytime」列を含む MySQL クエリを使用しています。タイムスタンプを UTC で保存します。ただし、タイムスタンプはローカル タイム ゾーンで表示する必要があります。 CONVERT_TZ() 関数が期待どおりに動作しません。

解決策

CONVERT_TZ() 関数を使用して UTC タイムスタンプをローカル タイム ゾーンに変換するには、両方のタイム ゾーンの略語を指定する必要があります。 UTC とローカルタイムゾーン。正しい構文は次のとおりです:

SELECT CONVERT_TZ(displaytime, 'UTC', 'LOCAL')

クエリの例

WHERE displaytime >= '2012-12-01 00:00:00'
AND displaytime <= '2013-02-22 23:59:59'
AND ct.organizationId IN (
  SELECT t.organizationId
  FROM organization_ AS t
  JOIN organization_ AS p ON t.treePath LIKE CONCAT(p.treePath, '%')
  WHERE p.organizationId = 10707
)

変更されたクエリ:

WHERE CONVERT_TZ(displaytime, 'UTC', 'LOCAL') >= '2012-12-01 00:00:00'
AND CONVERT_TZ(displaytime, 'UTC', 'LOCAL') <= '2013-02-22 23:59:59'
AND ct.organizationId IN (
  SELECT t.organizationId
  FROM organization_ AS t
  JOIN organization_ AS p ON t.treePath LIKE CONCAT(p.treePath, '%')
  WHERE p.organizationId = 10707
)

トラブルシューティング

CONVERT_TZ() が機能しない場合は、タイムゾーンテーブルが欠落しているか空であることが原因である可能性があります。 mysql_tzinfo_to_sql プログラムを使用してタイムゾーン テーブルを初期化できます。

以上がMySQL SelectクエリでUTC日​​付をローカルタイムゾーンに変換する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。