Mysql 建表時,日期時間類型選擇

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 用於表示 年月日 時分秒,可是記錄的年份(見上表)比較短暫。
  • TIMESTAMP 和時區相關,更能反映當前時間。當插入日期時,會先轉換爲本地時區後再存放;當查詢日期時,會將日期轉換爲本地時區後再顯示。因此不一樣時區的人看到的同一時間是  不同的。
  • 表中的第一個 TIMESTAMP 列自動設置爲系統時間(CURRENT_TIMESTAMP)。當插入或更新一行,但沒有明確給 TIMESTAMP 列賦值,也會自動設置爲當前系統時間。若是表中有第二個 TIMESTAMP 列,則默認值設置爲0000-00-00 00:00:00。
  • TIMESTAMP 的屬性受 Mysql 版本和服務器 SQLMode 的影響較大。

     若是記錄的日期須要讓不一樣時區的人使用,最好使用 TIMESTAMP。table

 DATE效率

    DATE 用於表示 年月日,若是實際應用值須要保存 年月日 就可使用 DATE。 語法

 TIME查詢

    TIME 用於表示 時分秒,若是實際應用值須要保存 時分秒 就可使用 TIME。tab

 YEAR

    YEAR 用於表示 年份,YEAR 有 2 位(最好使用4位)和 4 位格式的年。 默認是4位。若是實際應用只保存年份,那麼用 1 bytes 保存 YEAR 類型徹底能夠。不但可以節約存儲空間,還能提升表的操做效率。

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------

 

每種日期時間類型都有一個有效值範圍,若是超出這個範圍,在默認的SQLMode下會報錯,並以零值(見上表)存儲。

 

插入或更新時,日期時間類型容許「不嚴格」語法,以DATETIME爲例(其餘日期時間類型雷同):

  • YYYY-MM-DD HH:MM:SS 或 YY-MM-DD HH:MM:SS 格式的字符串。任何符號均可以用做日期部分或時間部分的間隔符。例如:「14-06-18 14:54:10」、「14*06*18 14.54.10」、「14+06+18 14=54=10」是等價的。對於包含日期時間的字符串值,若是月、日、時、分、秒的值小於10,不須要指定兩位數。例如:「2014-2-3 2:3:6」、「2014-02-03 02:03:06」是等價的。
  • YYYYMMDDHHMMSS 或 YYMMDDHHMMSS 格式的字符串。若是字符串對於日期時間類型是合法的就能夠解釋爲日期時間類型。例如:「20140618145410」 和 「140618145410」將被解釋爲 「2014-06-18 14:54:10」 ,可是 「20140618145480」 是不合法的(秒數不合法),將被解釋爲 「0000-00-00 00:00:00」。
  • YYYYMMDDHHMMSS 或 YYMMDDHHMMSS 格式的數字。若是該數字對日期時間類型是合法的就能夠解釋爲日期時間類型。例如:「20140618145410」 和 「140618145410」 將被解釋爲 「2014-06-18 14:54:10」 。數值的長度應爲六、八、十二、14。若是數值長度是 8 或 14 位長,則假定爲 YYYYMMDD 或 YYYYMMDDHHMMSS 格式。若是數值爲 6 或 12 位長,則假定爲 YYMMDD 或 YYMMDDHHMMSS 格式。

 


 

end

相關文章
相關標籤/搜索