時(shí)間存儲(chǔ)
時(shí)間存儲(chǔ)是我們?cè)贛ySQL中最常用的一種存儲(chǔ)類(lèi)型,MySQL為我們提供了timestamp和datetime兩種數(shù)據(jù)類(lèi)型,那么這兩者有什么區(qū)別,又該如何進(jìn)行選擇呢
timestamp和datetime的區(qū)別
- datetime的默認(rèn)值為null,timestamp默認(rèn)值為當(dāng)前系統(tǒng)時(shí)間
- datetime占用8個(gè)字節(jié),timestamp占用4個(gè)字節(jié)
- datetime存的什么讀出來(lái)就是什么,timestamp存儲(chǔ)的時(shí)候會(huì)轉(zhuǎn)為utc存儲(chǔ),讀出的時(shí)候也會(huì)轉(zhuǎn)換成當(dāng)前時(shí)區(qū)
- timestamp所能存儲(chǔ)的時(shí)間范圍為:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'。datetime所能存儲(chǔ)的時(shí)間范圍為:'1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。
如何選擇
- 如果時(shí)間范圍超過(guò)2038年,那自然選擇datetime
- 如果希望跨時(shí)區(qū)存儲(chǔ)不同地區(qū)時(shí)間,也選擇datetime
- timestamp適合用于記錄字段最后更新時(shí)間(老版本mysql,新版本datetime也可以支持)