首頁 > 資料庫 > mysql教程 > 如何在 MySQL 中儲存帶有時區資訊的日期時間以避免時區轉換問題?

如何在 MySQL 中儲存帶有時區資訊的日期時間以避免時區轉換問題?

Barbara Streisand
發布: 2024-12-19 15:02:11
原創
116 人瀏覽過

How Can I Store Datetimes with Timezone Information in MySQL to Avoid Timezone Conversion Issues?

在MySQL 中存儲帶有時區信息的日期時間:解決時區差異

問題:

如何考慮到伺服器時區是,我可以將日期時間與時區資訊一起儲存在MySQL資料庫中嗎與儲存資料的時區不同?

討論:

儲存帶有時區資訊的日期時間對於維護反映事件發生的實際時間的準確時間戳至關重要,無論伺服器的位置或時區如何。處理來自不同時區的資料時,例如在坦尚尼亞拍攝並儲存在美國伺服器上的照片,確保時間戳保存在正確的時區至關重要。

答案:

要在MySQL 中儲存帶有時區資訊的日期時間並防止時區轉換問題,請遵循以下步驟步驟:

  1. 使用DATETIME 類型: 與TIMESTAMP 以UTC格式儲存時間戳記不同,DATETIME 保留指定時區的時間戳記。這可確保坦尚尼亞時間戳以坦尚尼亞時間存儲,而不管伺服器的時區如何。
  2. 調整您的應用程式程式碼:資料的時區應在儲存之前在您的應用程式程式碼中明確設定在資料庫中。例如,將坦尚尼亞日期時間插入 DATETIME 欄位時,應在執行 INSERT 語句之前將時間戳記轉換為坦尚尼亞時間。

範例:

INSERT INTO Images (TimestampJPG) VALUES (CONVERT_TZ('2011-03-13 02:49:10', '+00:00', '+03:00'));
登入後複製

額外注意事項:

  • 避免使用會話時間:如果會話設定不正確,依賴會話時間可能會導致錯誤的時間戳。
  • 使用時區支援函式庫: 對於複雜的時區處理,請考慮使用提供時區的 PHP 或 MySQL 函式庫支援。
  • 考慮使用UTC 進行全球分發:如果儲存的資料將由不同時區的用戶訪問,則以UTC 儲存時間戳並即時轉換它們可能是更好的顯示選項對於每個用戶來說都是正確的。

以上是如何在 MySQL 中儲存帶有時區資訊的日期時間以避免時區轉換問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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