ホームページ >データベース >mysql チュートリアル >MySQL サーバーのタイムゾーン設定を決定および管理するにはどうすればよいですか?

MySQL サーバーのタイムゾーン設定を決定および管理するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-03 06:38:40301ブラウズ

How Can I Determine and Manage MySQL Server's Time Zone Settings?

MySQL サーバーの現在のタイム ゾーンの取得

MySQL には、グローバルとグローバルの両方の現在のタイム ゾーン設定を取得するのに役立つ関数があります。クライアント固有の構成。これを利用する方法は次のとおりです:

mysql> SELECT @@global.time_zone, @@session.time_zone;

ただし、このメソッドを使用すると、戻り値として「SYSTEM」が取得される可能性があります。これは、MySQL がシステムのタイムゾーンに合わせて設定されていることを示します。

PHP を使用したタイムゾーンの取得

「SYSTEM」の場合プレースホルダーが返された場合は、PHP を利用して、date_default_timezone_get 関数を通じてサーバーのシステムで使用されているタイムゾーンを取得できます。

<?php
// Get the system's time zone
$timeZone = date_default_timezone_get();
echo "System time zone: $timeZone";
?>

データベース データのタイム ゾーンに関する考慮事項

MySQL はタイムゾーン情報を含めずに日付と時刻の値を保存することに注意することが重要です。これは次のことを意味します:

mysql> CREATE TABLE foo (timestamp DATETIME) ENGINE=MyISAM;
mysql> INSERT INTO foo (timestamp) VALUES (NOW());
mysql> SET time_zone = '+01:00';
mysql> SELECT timestamp FROM foo;
| timestamp              |
| ---------------------- |
| 2010-05-29 08:31:59     |

mysql> SET time_zone = '+02:00';
mysql> SELECT timestamp FROM foo;
| timestamp              |
| ---------------------- |
| 2010-05-29 08:31:59     |      <== No change

サーバーのタイムゾーンが変更されても、保存されたタイムスタンプは同じままです。これは、MySQL のタイムスタンプがネイティブにタイム ゾーンを認識していないためです。

タイム ゾーン管理のベスト プラクティス

データの整合性を維持するには、次の推奨事項に従うことが重要です。 :

  • SET time_zone = ' を使用してサーバーのタイムゾーンを適切に設定します00:00'.
  • now() や unix_timestamp() などのタイム ゾーンを必要とする関数が正しいタイム ゾーンで使用されていることを確認してください。
  • 日付と時刻を次の場所に保存します。 GMT (夏時間は適用されません) を使用し、必要に応じて希望のタイム ゾーンに変換します。これにより、一貫性が確保され、曖昧さが排除されます。

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

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