1. 程式人生 > >MySQL資料庫中的Date,DateTime,TimeStamp和Time型別

MySQL資料庫中的Date,DateTime,TimeStamp和Time型別

DATETIME型別用在你需要同時包含日期和時間資訊的值時。MySQL檢索並且以'YYYY-MM-DD HH:MM:SS'格式顯示DATETIME值,支援的範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。(“支援”意味著儘管更早的值可能工作,但不能保證他們可以。)

DATE型別用在你僅需要日期值時,沒有時間部分。MySQL檢索並且以'YYYY-MM-DD'格式顯示DATE值,支援的範圍是'1000-01-01'到'9999-12-31'。

TIMESTAMP列型別提供一種型別,你可以使用它自動地用當前的日期和時間標記INSERT或UPDATE的操作。

TIME資料型別表示一天中的時間。MySQL檢索並且以"HH:MM:SS"格式顯示TIME值。支援的範圍是'00:00:00'到'23:59:59'。 建立表SQL

  1. CREATE TABLE `tb_test` (  
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,  
  3.   `date1` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIM  
  4. ESTAMP,  
  5.   `date2` date DEFAULT NULL,  
  6.   `date3` datetime DEFAULT NULL,  
  7.   `timetime DEFAULT NULL,  
  8.   PRIMARY KEY (`id`)  
  9. );  

執行效果截圖:

日期型別         儲存空間       日期格式                                      日期範圍 datetime         8 bytes   YYYY-MM-DD HH:MM:SS   1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 timestamp      4 bytes   YYYY-MM-DD HH:MM:SS   1970-01-01 00:00:01 ~ 2037-12-31 23:59:59 date                3 bytes   YYYY-MM-DD                      1000-01-01 ~ 9999-12-31 datetime和timestamp的區別: 1.datetime 的日期範圍比較大;如果有1970年以前的資料還是要用datetime.但是timestamp 所佔儲存空間比較小。 2.timestamp 型別的列還有個特性:預設情況下,在 insert, update 資料時,timestamp 列會自動以當前時間(CURRENT_TIMESTAMP)填充/更新。

3.timestamp比較受時區timezone的影響以及MYSQL版本和伺服器的SQL MODE的影響. 使用一個常用的格式集的任何一個,你可以指定DATETIME、DATE和TIMESTAMP值: 'YYYY-MM-DD HH:MM:SS'或'YY-MM-DD HH:MM:SS'格式的一個字串,允許一種"寬鬆"的語法:任何標點可用作在日期部分和時間部分之間的分隔符。例如,'98-12-31 11:30:45'、'98.12.31 11+30+45'、'98/12/31 11*30*45'和'[email protected]@31 11^30^45'是等價的。