轉自:http://www.mamicode.com/info-detail-1807313.html
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'。
參考表結構
CREATE TABLE `t_baby` (
`baby_id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`nickname` varchar(64) DEFAULT NULL,
`avatar` varchar(64) DEFAULT ‘‘,
`sex` int(2) unsigned NOT NULL DEFAULT ‘0‘ COMMENT ‘0:未知;\\n 1:男;\\n 2:女。‘,
`birthday` datetime NOT NULL,
`creater` varchar(16) DEFAULT ‘‘,
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`is_delete` bigint(20) DEFAULT NULL COMMENT ‘0‘,
`updater` varchar(16) DEFAULT NULL,
PRIMARY KEY (`baby_id`)
) ENGINE=InnoDB AUTO_INCREMENT=10000000 DEFAULT CHARSET=utf8mb4;
當我們創建業務表的時候 通常都需要設置create_time 和 update_time 但是通常需要在代碼中設置好時間后再插入數據庫
CURRENT_TIMESTAMP 字段設置后 當insert數據時 mysql會自動設置當前系統時間 賦值給該屬性字段
ON UPDATE CURRENT_TIMESTAMP 字段設置后 當update數據時 並且 成功發生更改時 mysql會自動設置當前系統時間 賦值給該屬性字段
create_time 設置 CURRENT_TIMESTAMP屬性
update_time 設置 ON UPDATE CURRENT_TIMESTAMP屬性
我們在代碼中 就無需再手動給這兩個參數賦值 節省了一定代碼量
MySQL自動設置create_time和update_time
