我需要將日期(包括時間)存儲在MySQL數據庫中。我希望能夠對這些我喜歡的方式進行格式化。那麼在MySQL數據庫中存儲日期的最佳方式是什麼? DATETIME類型,TIMESTAMP類型或只是數字數據類型中的unix時間戳?我將使用PHP檢索日期。將日期存儲爲MySQL中的unix時間戳或TIMESTAMP數據類型?
2
A
回答
0
您可以使用DateTime類型來存儲時間戳&使用mysql中的now()插入當前時間戳,或通過任何您認爲合適的方法獲取日期/時間戳。
2
通常使用TIMESTAMP
還是DATETIME
數據類型無關緊要。
- 在舊版本,
TIMESTAMP
是4個字節並DATETIME
爲8 - 思考的
DATETIME
作爲時鐘的圖片;想想TIMESTAMP
即時在全球範圍內。也就是說,如果您連接到同一個數據庫,但是來自不同的時區,DATETIME
看起來是一樣的,但TIMESTAMP
將根據時區進行調整。 NOW()
,SELECTing
進入PHP等,都兼容兩者。- 兩者都被視爲一個字符串,如'2015-04-25 17:09:01'。
- 由於
TIMESTAMP
存儲爲32位整數(但您沒有看到),因此它僅限於〜1970-2038。 - 由於
DATETIME
是時鐘時間,如果您切換到夏令時/從夏令時切換,每年會有兩次缺失/加班時間。
是的,你可以使用UNIX_TIMESTAMP()
並且有一個INT UNSIGNED
,但是看看'2015 -...'會更好嗎? (這將是4個字節)。
0
我更喜歡將它存儲爲長期,它總是從時代和代表UTC。這有助於我們迎合不同的本地化和時區方面 - 其他方面我們最終會將值存儲在數據庫服務器默認或JVM默認語言環境中。
相關問題
- 1. 在PHP/MySQL安裝unix時間戳 - 最好的MySQL數據類型存儲爲?
- 2. C#將日期時間存儲到MYSQL中的Timestamp列中
- 3. mysql數據類型時間戳的格式日期時間
- 4. PHP將MySQL日期時間轉換爲Unix時間戳
- 5. 將日期轉換爲UNIX時間戳
- 6. 轉換Unix日期「星期三9月15日14:21:36」以unix時間戳perl或MySQL存儲在mySQL
- 7. 轉換時間戳數據類型爲unix時間戳Oracle
- 8. 如何在MySql中將unix時間戳轉換爲UTC日期?
- 9. 如何將java日期類型存儲爲mysql日期類型?
- 10. 出生日期保存到MYSQL DB的時間戳或日期列類型
- 11. Unix時間戳和mysql日期:birthdate
- 12. 將時間戳記varchar2轉換爲日期數據類型
- 13. 將unix時期時間戳轉換爲TSQL日期時間
- 14. 將SAS日期時間轉換爲SAS中的UNIX時間戳
- 15. 將日期時間轉換爲python中的unix時間戳
- 16. Python:將Varbinary類型的時間戳轉換爲unix時間戳
- 17. Mysql Unix-Timestamp日期格式
- 18. 如何將人類日期轉換爲Mysql中的unix時間戳?
- 19. 日期到Unix時間戳
- 20. 將MySQL日期轉換爲unix時間戳。
- 21. MySQL - 如何將當前日期作爲Unix時間戳插入?
- 22. 在Python中將日期時間更改爲Unix時間戳
- 23. mysql時間戳或日期時間
- 24. 無法將日期和時間戳記值存儲在mysql中
- 25. 選擇存儲爲Unix時間戳的日期並與給定的Unix時間戳進行比較
- 26. PHP日期轉換爲unix時間戳
- 27. 將日期和時間轉換爲UNIX時代時間戳
- 28. 存儲Java util的日期到MySQL作爲一個時間戳
- 29. MySQL的2個日期(存儲爲INT時間戳)
- 30. C#:Unix時間戳和日期時間
如果我想自己格式化時間(而不是讓SQL執行此操作,它已預格式化),unix時間戳會更有用嗎? – Creator13
'DATE_FORMAT()'給你很多選擇。它可以與'TIMESTAMP','DATE'和'DATETIME'數據類型一起工作,而不需要使用'FROM_UNIXTIME()'。 –
但是有沒有理由不使用unix時間?是否最好在SQL(使用DATE_FORMAT())而不是PHP(或任何其他語言)內進行格式化?我會說一個unix時間戳更爲普遍,因爲基本上每個語言都知道如何處理這些時間戳。 – Creator13