當帶夏令時的MySQL CONVERT_TZ()
將每日警報儲存在使用者定義的本地時區指定的資料庫時,考慮夏令時(DST) 至關重要。本文探討如何使用 CONVERT_TZ() 函數來適應 DST,並解決與其實作相關的常見問題。
問題 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() 中的空值
如果 CONVERT_TZ() 傳回 NULL,則表示 MySQL 時區表設定不正確。您可以透過執行下列查詢來檢查這一點:
如果此查詢傳回 NULL,則表示表格未配置。若要解決此問題,您可以參閱 MySQL 文件以取得有關設定時區表的說明。
替代方法
如果您不想依賴MySQL 時區表,可以使用以下方法:
例如:
以上是MySQL 的 CONVERT_TZ() 函式如何處理夏令時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!