首頁 >資料庫 >mysql教程 >MySQL 的 CONVERT_TZ() 函式如何處理時區與夏令時?

MySQL 的 CONVERT_TZ() 函式如何處理時區與夏令時?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-24 01:42:14732瀏覽

How Does MySQL's CONVERT_TZ() Function Handle Time Zones and Daylight Saving Time?

MySQL CONVERT_TZ() 時區處理

問題 1:夏令時考慮

是的,你是對的。透過指定時區名稱(例如“美國/東部”),CONVERT_TZ() 會考慮夏令時。呼叫 CONVERT_TZ('00:00:00', 'UTC', 'US/EASTERN') 會在一月返回 '19:00:00',從而識別出東部時間比 UTC 晚 5 小時。在夏令時期間,結果將為“20:00:00”,因為東部時間提前一小時。

問題 2:時區表更新

如果您只依賴時區名稱,不需要不斷更新時區表來保持偏移量最新。 CONVERT_TZ() 考慮當前時區設定和夏令時規則。

問題3:對NULL 回傳進行故障排除

範例查詢中的NULL 回傳(CONVERT_TZ(' 2004-01-01 12:00:00',' GMT','MET')) 確實可能是由於缺少時區表造成的。要驗證這一點,請執行下列查詢:

SELECT CONVERT_TZ(now(),'US/Eastern','US/Central');

如果也傳回 NULL,則表示時區表尚未正確設定。

其他提示

  • 對於Web應用程序,您可以使用JavaScript來獲取用戶的時間
  • 您可以使用MySQL中的INTERVAL關鍵字來處理時間計算,而不是直接加法或減去時間。例如,您可以使用以下命令減去一天並添加四小時:

    now() - interval 1 day + interval 4 hour

以上是MySQL 的 CONVERT_TZ() 函式如何處理時區與夏令時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn