取得 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 中的時間戳記本身不支援時區。
時區管理最佳實踐
為了保持資料完整性,必須遵守以下建議:
以上是如何確定和管理MySQL伺服器的時區設定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!