ホームページ > データベース > mysql チュートリアル > MySQL の CONVERT_TZ() 関数は夏時間をどのように処理しますか?

MySQL の CONVERT_TZ() 関数は夏時間をどのように処理しますか?

DDD
リリース: 2024-11-28 14:33:11
オリジナル
886 人が閲覧しました

How Does MySQL's CONVERT_TZ() Function Handle Daylight Saving Time?

夏時間の MySQL CONVERT_TZ()

ユーザー定義のローカル タイム ゾーンで指定された毎日のアラートをデータベースに保存する場合、夏時間 (DST) を考慮することが重要です。この記事では、DST に対応するための CONVERT_TZ() 関数の使用法を検討し、その実装に関連する一般的な質問に答えます。

質問 1: DST によるタイム ゾーンの変換

CONVERT_TZ() 関数は、タイムゾーン名を指定するときに DST を考慮します。たとえば、UTC 時間を米国/東部時間に変換すると、DST が有効かどうかに応じて異なる結果が得られます。これは、CONVERT_TZ('00:00:00', 'UTC', 'US/EASTERN') は 1 月 1 日には '19:00:00'、7 月 1 日には '20:00:00' を返す必要があるという理解と一致します。

質問 2: MySQL タイムゾーン テーブル更新

CONVERT_TZ() 関数が正しく動作している場合、通常、MySQL のタイム ゾーン テーブルを手動で更新する必要はありません。 MySQL は、タイム ゾーン情報を保存する内部データベースを維持し、タイム ゾーン規制の変更に基づいて必要に応じて更新します。ただし、タイム ゾーン設定をカスタマイズした場合は、正確性を確保するためにテーブルを定期的に確認することをお勧めします。

質問 3: CONVERT_TZ() からの Null 値

CONVERT_TZ() が NULL を返す場合、これは MySQL タイムゾーン テーブルが正しく設定されていないことを示します。これを確認するには、次のクエリを実行します。

SELECT CONVERT_TZ(now(), 'US/Eastern', 'US/Central');
ログイン後にコピー

このクエリが NULL を返した場合、テーブルが構成されていないことを示します。この問題を解決するには、MySQL ドキュメントでタイム ゾーン テーブルの設定手順を参照してください。

代替アプローチ

MySQL タイム ゾーン テーブルでは、次のアプローチを使用できます。

  1. UTC からのユーザーのタイム ゾーン オフセットを時間単位で保存します。別のテーブル。
  2. utc_timezone() 関数を使用して現在の UTC 時間を取得します。
  3. タイムゾーン オフセットを減算してユーザーの現地時間を計算します。

の場合例:

SELECT utc_timezone() - interval user_timezone_offset_in_hours hour
FROM userinfo a
WHERE user_id = 999;
ログイン後にコピー

以上がMySQL の CONVERT_TZ() 関数は夏時間をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート