在使用Mysql中的日期類型時發現 兩種日期類型datetime和timestamp,於是立即去找它們的區別。網上搜出來的要麼是長篇大論,要 麼沒有重點,於是總結了下精華部分,希望對大家有所幫助。
datetime
1、允許為空值,可以自定義值,系統不會自動修改其值。
2、不可以設定默認值,所以在不允許為空值的情況下,必須手動指定datetime字段的值才可以成功插入數據。
3、雖然不可以設定默認值,但是可以在指定datetime字段的值的時候使用now()變量來自動插入系統的當前時間。
結論:datetime類型適合用來記錄數據的原始的創建時間,因為無論你怎麼更改記錄中其他字段的值,datetime字段的值都不會改變,除非你手動更改它。
timestamp
1、允許為空值,但是不可以自定義值,所以為空值時沒有任何意義。
2、默認值為CURRENT_TIMESTAMP(),其實也就是當前的系統時間。
3、數據庫會自動修改其值,所以在插入記錄時不需要指定timestamp字段的名稱和timestamp字段的值,你只需要在設計表的時候添加一個timestamp字段即可,插入後該字段的值會自動變為當前系統時間。
4、以後任何時間修改表中的記錄時,對應記錄的timestamp值會自動被更新為當前的系統時間。
結論:timestamp類型適合用來記錄數據的最後修改時間,因為只要你更改了記錄中其他字段的值,timestamp字段的值都會被自動更新。
*