2 回答

TA貢獻1828條經(jīng)驗 獲得超13個贊
首先 DATETIM和TIMESTAMP類型所占的存儲空間不同,前者8個字節(jié),后者4個字節(jié),這樣造成的后果是兩者能表示的時間范圍不同。前者范圍為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類型在默認情況下,insert、update 數(shù)據(jù)時,TIMESTAMP列會自動以當前時間(CURRENT_TIMESTAMP)填充/更新。
第三,TIMESTAMP比較受時區(qū)timezone的影響以及MYSQL版本和服務器的SQL MODE的影響
所以一般來說,我比較傾向選擇DATETIME,至于你說到索引的問題,選擇DATETIME作為索引,如果碰到大量數(shù)據(jù)查詢慢的情況,也可以分區(qū)表解決。

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