ホームページ > データベース > mysql チュートリアル > MySQL でタイムゾーンを効果的に管理するにはどうすればよいですか?

MySQL でタイムゾーンを効果的に管理するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-15 14:33:11
オリジナル
175 人が閲覧しました

How Can I Effectively Manage Time Zones in MySQL?

MySQL タイム ゾーンの設定

MySQL のタイム ゾーン設定を理解することは、日付と時刻を正確に表現するために重要です。このガイドでは、MySQL でタイム ゾーンを設定する場所と方法の包括的な概要を提供し、開発者が時間に敏感なデータを効果的に管理できるようにします。

MySQL のタイム ゾーン設定

MySQL では、次の 3 つの異なる場所でタイム ゾーンを設定できます:

  1. my.cnf 設定ファイル: [mysqld] セクション内で、default-time-zone パラメーターは、すべての MySQL 接続のグローバルなデフォルトのタイムゾーンを指定します。
  2. @@global.time_zone 変数: これグローバル変数は、すべてのシステムレベルの操作に使用されるタイムゾーンを表します。これは、SET GLOBAL time_zone コマンドを使用して設定できます。
  3. @@session.time_zone 変数: 各 MySQL セッションは、SET time_zone コマンドで管理される独自のタイム ゾーン設定を持つことができます。デフォルトでは、セッションのタイムゾーンは @@global.time_zone から継承されます。

タイムゾーン情報テーブルの作成

名前付きタイムゾーンを有効にするには、タイムゾーン情報テーブルにデータを設定する必要があります。これは、MySQL のドキュメントに記載されている手順に従うか、サードパーティのツールを通じて行うことができます。

タイム ゾーンの表示と変更

現在のタイム ゾーン設定を確認するには、次のクエリを実行します:

  • SELECT @@global.time_zone;
  • SELECT @@session.time_zone;

タイムゾーンを設定するには、次のコマンドのいずれかを使用します:

  • SET GLOBAL time_zone = ' 00:00';
  • SET time_zone = 'ヨーロッパ/ヘルシンキ';

追加のタイム ゾーン関数

MySQL は、タイム ゾーンとタイムスタンプを効果的に管理するためのさまざまな関数を提供します。これらには次のものが含まれます:

  • TIMEDIFF(NOW(), UTC_TIMESTAMP);現在のタイム ゾーン オフセットを返します。
  • SELECT UNIX_TIMESTAMP();現在の UNIX タイムスタンプを取得します。
  • SELECT UNIX_TIMESTAMP(CONVERT_TZ(utc_datetime, ' 00:00', @@session.time_zone)) FROM table_name; UTC 日時列を現在のセッション タイム ゾーンの UNIX タイムスタンプに変換します。

注: タイム ゾーンを変更しても、基になる格納された日時やタイムスタンプには影響しません。ただし、既存のタイムスタンプ列は、内部的には UTC タイムスタンプとして保存され、外部的には現在の MySQL タイムゾーンで表示されるため、表示方法が異なります。

以上がMySQL でタイムゾーンを効果的に管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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