亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對于時間字段格式我該如何選擇,TIMESTAMP,DATETIME,INT?

對于時間字段格式我該如何選擇,TIMESTAMP,DATETIME,INT?

30秒到達戰場 2023-04-14 17:13:18
Mysql的時間字段貌似有各種選擇,像一般的情況(我也是)下就是用INT型來表示,直接存儲時間戳。但是我知道在Mysql里至少還有TIMESTAMP和DATETIME型可以用來存儲時間,我不知道這三者在使用上各有什么區別,在使用場景上需要怎么考慮,特別是它們在索引或者查詢速度上有區別嗎?
查看完整描述

2 回答

?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

首先 DATETIM和TIMESTAMP類型所占的存儲空間不同,前者8個字節,后者4個字節,這樣造成的后果是兩者能表示的時間范圍不同。前者范圍為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要小,容易出現超出的情況.

其次,TIMESTAMP類型在默認情況下,insert、update 數據時,TIMESTAMP列會自動以當前時間(CURRENT_TIMESTAMP)填充/更新。

第三,TIMESTAMP比較受時區timezone的影響以及MYSQL版本和服務器的SQL MODE的影響

所以一般來說,我比較傾向選擇DATETIME,至于你說到索引的問題,選擇DATETIME作為索引,如果碰到大量數據查詢慢的情況,也可以分區表解決。


查看完整回答
反對 回復 2023-04-17
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

兩者都是時間類型字段,格式都一致。兩者主要有以下四點區別:

  • 最主要的區別-受時區影響不同。timestamp會跟隨設置的時區變化而變化,而datetime保存的是絕對值不會變化。


查看完整回答
反對 回復 2023-04-17
  • 2 回答
  • 0 關注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號