mysql支持的日期時間類型有:DATETIME、 TIMESTAMP、DATE、TIME、YEAR。
幾種類型比較如下:
DATETIME
DATETIME 用於表示 年月日 時分秒,是 DATE和TIME 的組合,並且記錄的年份(見上表)比較長久。如果實際應用中有這樣的需求,就可以使用 DATETIME 類型。
TIMESTAMP
TIMESTAMP 用於表示 年月日 時分秒,但是記錄的年份(見上表)比較短暫。
TIMESTAMP 和時區相關,更能反映當前時間。當插入日期時,會先轉換為本地時區后再存放;當查詢日期時,會將日期轉換為本地時區后再顯示。所以不同時區的人看到的同一時間是不一樣的。
表中的第一個 TIMESTAMP 列自動設置為系統時間(CURRENT_TIMESTAMP)。當插入或更新一行,但沒有明確給 TIMESTAMP 列賦值,也會自動設置為當前系統時間。如果表中有第二個 TIMESTAMP 列,則默認值設置為0000-00-00 00:00:00。
TIMESTAMP 的屬性受 Mysql 版本和服務器 SQLMode 的影響較大。
如果記錄的日期需要讓不同時區的人使用,最好使用 TIMESTAMP。
DATE
DATE 用於表示年月日,如果實際應用值需要保存年月日就可以使用DATE。
TIME
TIME 用於表示時分秒,如果實際應用值需要保存時分秒就可以使用TIME。
YEAR
YEAR 用於表示 年份,YEAR 有2位(最好使用4位)和4位格式的年。 默認是4位。如果實際應用只保存年份,那么用1bytes 保存YEAR 類型完全可以。不但能夠節約存儲空間,還能提高表的操作效率。