DATE只保存日期,不保存時(shí)分秒
DATETIME類型用在你需要同時(shí)包含日期和時(shí)間信息的值時(shí)。MySQL檢索并且以'YYYY-MM-DD HH:MM:SS'格式顯示DATETIME值,支持的范圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。
TIMESTAMP列類型提供一種類型,你可以使用它自動(dòng)地用當(dāng)前的日期和時(shí)間標(biāo)記INSERT或UPDATE的操作。如果你有多個(gè)TIMESTAMP列,只有第一個(gè)自動(dòng)更新。
自動(dòng)更新第一個(gè)TIMESTAMP列在下列任何條件下發(fā)生:
列沒有明確地在一個(gè)INSERT或LOAD DATA INFILE語(yǔ)句中指定。
列沒有明確地在一個(gè)UPDATE語(yǔ)句中指定且一些另外的列改變值。(注意一個(gè)UPDATE設(shè)置一個(gè)列為它已經(jīng)有的值,這將不引起TIMESTAMP列被更新,因?yàn)槿绻阍O(shè)置一個(gè)列為它當(dāng)前的值,MySQL為了效率而忽略更改。)
你明確地設(shè)定TIMESTAMP列為NULL.
除第一個(gè)以外的TIMESTAMP列也可以設(shè)置到當(dāng)前的日期和時(shí)間,只要將列設(shè)為NULL,或NOW()。
自動(dòng)更新TIMESTAMP時(shí)建表語(yǔ)句應(yīng)為如下類似
CREATE TABLE `t_jindou_xx` (
`account` varchar(18) NOT NULL default '',
`money` decimal(10,2) NOT NULL default '0.00',
`update_date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`account`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
TIMESTAMP類型保存的值不能比1970早或比2037晚,這意味著,一個(gè)日期例如'1968-01-01',當(dāng)作為一個(gè)DATETIME或DATE值合法時(shí),它不是一個(gè)正確TIMESTAMP值,并且 如果賦值給這樣一個(gè)對(duì)象,它將被變換到0。