首頁  >  文章  >  資料庫  >  MySQL 的 CONVERT_TZ() 函式是否處理夏令時?

MySQL 的 CONVERT_TZ() 函式是否處理夏令時?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-19 20:07:02812瀏覽

Does MySQL's CONVERT_TZ() Function Handle Daylight Saving Time, and How Can I Troubleshoot Time Zone Issues?

MySQL CONVERT_TZ() 考慮夏令時

問題1:

問題1:

是的,你🎜的理解是正確的。 CONVERT_TZ() 在指定時區名稱時考慮夏令時。例如,CONVERT_TZ('00:00:00', 'UTC', 'US/EASTERN') 確實會在1 月1 日返回“19:00:00”,在7 月1 日返回“20:00:00 」。

問題2:

不,你不需要不斷更新MySQL的時區表來維持時區UTC偏移量是最新的。當時區規則發生變化時,MySQL 會自動更新表。

問題3:

SELECT CONVERT_TZ(now(),'US/Eastern','US/Central');
SELECT CONVERT_TZ('2004-01-01 12:00:00' 的結果,'GMT','MET') 產生「NULL 」可能表示時區表設定不正確。

要檢查這一點,您可以執行以下查詢:

如果結果不為 NULL,則時區表設定正確。

替代時區偏移計算:
select utc_timezone() - interval user_timezone_offset_in_hours hour
from userinfo a
where user_id = 999;

如果您沒有時間設定好區域表後,您仍可使用下列查詢計算時區偏移:

但是,這種方法需要您手動更新使用者的時區偏移。

透過 JavaScript 取得時區:

對於 Web 應用程序,您可以透過 JavaScript 取得使用者的時區。以下連結提供如何執行此操作的範例:[JavaScript 時區偵測](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl .DateTimeFormat )

使用INTERVAL 進行時間計算:
select now() a, now() - interval 1 day + interval 4 hour + interval 8 minute b;
INTERVAL 關鍵字可以方便地對時間值進行加法和減法。例如,以下查詢從目前時間減去 1 天 4 小時 8 分鐘:

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

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