2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
首先 DATETIM和TIMESTAMP類型所占的存儲(chǔ)空間不同,前者8個(gè)字節(jié),后者4個(gè)字節(jié),這樣造成的后果是兩者能表示的時(shí)間范圍不同。前者范圍為1000-01-01 00:00:00 ~ 9999-12-31 23:59:59,后者范圍為1970-01-01 08:00:01到2038-01-19 11:14:07。所以可以看到TIMESTAMP支持的范圍比DATATIME要小,容易出現(xiàn)超出的情況.
其次,TIMESTAMP類型在默認(rèn)情況下,insert、update 數(shù)據(jù)時(shí),TIMESTAMP列會(huì)自動(dòng)以當(dāng)前時(shí)間(CURRENT_TIMESTAMP)填充/更新。
第三,TIMESTAMP比較受時(shí)區(qū)timezone的影響以及MYSQL版本和服務(wù)器的SQL MODE的影響
所以一般來說,我比較傾向選擇DATETIME,至于你說到索引的問題,選擇DATETIME作為索引,如果碰到大量數(shù)據(jù)查詢慢的情況,也可以分區(qū)表解決。

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
兩者都是時(shí)間類型字段,格式都一致。兩者主要有以下四點(diǎn)區(qū)別:
最主要的區(qū)別-受時(shí)區(qū)影響不同。
timestamp
會(huì)跟隨設(shè)置的時(shí)區(qū)變化而變化,而datetime
保存的是絕對(duì)值不會(huì)變化。
添加回答
舉報(bào)