1、兩者的存盤方式不一樣
TIMESTAMP:把客戶端插入的時間從當前時區轉化為UTC(世界標準時間)進行存盤,查詢時,將其又轉化為客戶端當前時區進行回傳,
DATETIME:不做任何改變,基本上是原樣輸入和輸出
2、兩者所能存盤的時間范圍不一樣
timestamp存盤的時間范圍為:‘1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’,
datetime存盤的時間范圍為:‘1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’,
3、timestamp支持default current_timestamp 來設定默認自動當前時間
4、timestamp支持on update current_timestamp 來設定更新時自動當前時間
5、timestamp時區相關,存盤時以UTC時間保持,查詢時轉換為當前時區,即如果在東8區的08:00:00分保存的資料,在東9區看到的是09:00:00,datetime與時區無關
6、timestamp 4個位元組存盤(實際上就是int),datetime 8個位元組
7、如果timestamp的值超出范圍,mysql不會報錯
8、如果是自動更新模式,手動修改資料導致timestamp欄位更新
9、同時有兩個timestamp欄位默認值為current_timestamp會報錯
參考資料: MySQL中 TIMESTAMP型別 和 DATETIME型別 的區別 http://www.studyofnet.com/news/1123.html
CSDN認證博客專家
分布式
Java
架構
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/210888.html
標籤:其他
