如何在夏令時期間準確儲存和檢索 MySQL 中的資料?

Linda Hamilton
發布: 2024-11-19 01:59:02
原創
776 人瀏覽過

How Can You Accurately Store and Retrieve Data in MySQL During Daylight Saving Time Transitions?

MySQL 日期時間字段和夏令時:捕獲「額外」時間

在實施夏令時(DST) 的地區,在處理MySQL等資料庫中的日期和時間時,會出現令人困惑的挑戰。具體來說,如何準確保存和檢索與從標準時間過渡到 DST 期間發生的「額外」小時相關的資料?

問題:時間參考中的歧義

考慮美國/紐約時區的情況,在秋季,由於時鐘倒退一小時,因此「損失」了一小時。在此轉換期間,「1:30am」之類的時間變得不明確,可能指標準時間 (-04:00) 的凌晨 1:30 或夏令時 (-05:00) 的凌晨 1:30。

MySQL 對日期時間欄位的處理

MySQL 提供兩種不同類型的日期時間欄位:日期時間和時間戳記。 TimeESTAMP 欄位會自動將輸入的日期時間轉換為 UTC,而 DATETIME 欄位會直接儲存它們。然而,這兩種字段類型在準確處理 DST 方面都面臨挑戰。

解決方案:使用DATETIME 欄位並轉換為UTC

要克服這些限制,建議的方法是使用DATETIME 欄位並將日期時間轉換為UTC,然後再將其保存到資料庫。透過將資料儲存在非 DST 時區,將來的轉換和計算可以毫無歧義地進行。

轉換為UTC 進行資料庫儲存的步驟

  1. 擷取資料:使用PHP 等函數從資料庫擷取UTC 資料strtotime( ) 或DateTime 類別。
  2. 轉換為 UTC: 使用 PHP 的 DateTime 類別或等效功能將日期時間轉換為所需的 UTC 時間。
  3. 保存到數據庫: 將轉換後的UTC 日期時間存儲在DATETIME 中

結論

通過在將日期時間儲存到MySQL 之前仔細管理DST 轉換並將日期時間轉換為UTC,開發人員可以確保準確且一致的處理。這種方法消除了歧義,並在 MySQL 資料庫中實現可靠的日期和時間相關操作。

以上是如何在夏令時期間準確儲存和檢索 MySQL 中的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板