mysql(5.5)所支持的日期時間類型有:DATETIME、 TIMESTAMP、DATE、TIME、YEAR。mysql
幾種類型比較以下:sql
日期時間類型 | 佔用空間 | 日期格式 | 最小值 | 最大值 | 零值表示 |
DATETIME | 8 bytes | YYYY-MM-DD HH:MM:SS |
1000-01-01 00:00:00 |
9999-12-31 23:59:59 |
0000-00-00 00:00:00 |
TIMESTAMP | 4 bytes | YYYY-MM-DD HH:MM:SS | 19700101080001 |
2038 年的某個時刻 |
00000000000000 |
DATE | 4 bytes |
YYYY-MM-DD | 1000-01-01 |
9999-12-31 |
0000-00-00 |
TIME | 3 bytes |
HH:MM:SS | -838:59:59 | 838:59:59 |
00:00:00 |
YEAR | 1 bytes |
YYYY | 1901 |
2155 |
0000 |
DATETIME服務器
DATETIME 用於表示 年月日 時分秒,是 DATE 和 TIME 的組合,而且記錄的年份(見上表)比較長久。若是實際應用中有這樣的需求,就可使用 DATETIME 類型。spa
TIMESTAMP字符串
若是記錄的日期須要讓不一樣時區的人使用,最好使用 TIMESTAMP。table
DATE效率
DATE 用於表示 年月日,若是實際應用值須要保存 年月日 就可使用 DATE。 語法
TIME查詢
TIME 用於表示 時分秒,若是實際應用值須要保存 時分秒 就可使用 TIME。tab
YEAR
YEAR 用於表示 年份,YEAR 有 2 位(最好使用4位)和 4 位格式的年。 默認是4位。若是實際應用只保存年份,那麼用 1 bytes 保存 YEAR 類型徹底能夠。不但可以節約存儲空間,還能提升表的操做效率。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
每種日期時間類型都有一個有效值範圍,若是超出這個範圍,在默認的SQLMode下會報錯,並以零值(見上表)存儲。
插入或更新時,日期時間類型容許「不嚴格」語法,以DATETIME爲例(其餘日期時間類型雷同):
end