一、二者的存儲方式不同html
TIMESTAMP:把客戶端插入的時間從當前時區轉化爲UTC(世界標準時間)進行存儲。查詢時,將其又轉化爲客戶端當前時區進行返回。mysql
DATETIME:不作任何改變,基本上是原樣輸入和輸出sql
二、二者所能存儲的時間範圍不同spa
timestamp存儲的時間範圍爲:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'。orm
datetime存儲的時間範圍爲:'1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。htm
三、timestamp支持default current_timestamp 來設置默認自動當前時間get
四、timestamp支持on update current_timestamp 來設置更新時自動當前時間it
五、timestamp時區相關,存儲時以UTC時間保持,查詢時轉換爲當前時區,即若是在東8區的08:00:00分保存的數據,在東9區看到的是09:00:00,datetime與時區無關date
六、timestamp 4個字節存儲(實際上就是int),datetime 8個字節im
七、若是timestamp的值超出範圍,mysql不會報錯
八、若是是自動更新模式,手動修改數據致使timestamp字段更新
九、同時有兩個timestamp字段默認值爲current_timestamp會報錯
參考資料: MySQL中 TIMESTAMP類型 和 DATETIME類型 的區別 http://www.studyofnet.com/news/1123.html