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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-12-14 19:20:14986ブラウズ

How Do I Effectively Configure Time Zones in MySQL?

MySQL でタイム ゾーンを構成する方法: 詳細ガイド

MySQL は、さまざまな方法でタイム ゾーンを柔軟に管理できます。ここでは、タイム ゾーンを効果的に設定するのに役立つ包括的なガイドを示します。

my.cnf ファイルのデフォルト タイム ゾーン

MySQL 構成ファイル ("my.cnf") ")、デフォルトのタイムゾーンは、次のコマンドを使用して [mysqld] セクション内で指定できます。ディレクティブ:

default-time-zone='+00:00'

この行は、デフォルトのタイムゾーンを UTC (協定世界時) に設定します。

グローバル タイム ゾーン変数

@ @global.time_zone 変数には、グローバル タイム ゾーン設定が保存されます。現在の値を確認するには:

SELECT @@global.time_zone;

グローバル タイム ゾーンを設定するには:

SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';

セッション タイム ゾーン変数

@@ session.time_zone 変数は、現在の接続のタイムゾーンを制御します。値を表示するには:

SELECT @@session.time_zone;

セッションのタイムゾーンを設定するには:

SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";

@@session.time_zone と @@global.time_zone は両方とも、時間を示す SYSTEM を返すことができます。ゾーンは my.cnf から継承されます。

追加注

名前付きタイムゾーン (「ヨーロッパ/ヘルシンキ」など) を有効にするには、MySQL タイムゾーン テーブルに適切にデータを設定する必要があります。

TIMEDIFF() 関数を使用して取得できます。現在のタイム ゾーン オフセット。

UNIX_TIMESTAMP() およびUNIX_TIMESTAMP(NOW()) は、現在の UNIX タイムスタンプを提供します。

タイムスタンプを UNIX タイムスタンプに変換するには、SELECT UNIX_TIMESTAMP(timestamp) FROM table_name を使用します。

UNIX タイムスタンプとして UTC 日時列を取得するには: SELECT UNIX_TIMESTAMP(CONVERT_TZ(utc_datetime, ' 00:00', @@session.time_zone)) FROM table_name.

タイムゾーンを変更しても、保存されている日時値やタイムスタンプ値は変更されませんが、内部的に UTC タイムスタンプとして保存されるため、表示方法に影響します。 .

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

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