DATETIME類型用在你需要同時包含日期和時間信息的值時。MySQL檢索並且以'YYYY-MM-DD HH:MM:SS'格式顯示DATETIME值,支持的範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。
TIMESTAMP列類型提供一種類型,你可以使用它自動地用當前的日期和時間標記INSERT或UPDATE的操作。如果你有多個TIMESTAMP列,只有第一個自動更新。
自動更新第一個TIMESTAMP列在下列任何條件下發生:
列沒有明確地在一個INSERT或LOAD DATA INFILE語句中指定。
列沒有明確地在一個UPDATE語句中指定且一些另外的列改變值。(注意一個UPDATE設置一個列爲它已經有的值,這將不引起TIMESTAMP列被更新,因爲如果你設置一個列爲它當前的值,MySQL爲了效率而忽略更改。)
你明確地設定TIMESTAMP列爲NULL.
除第一個以外的TIMESTAMP列也可以設置到當前的日期和時間,只要將列設爲NULL,或NOW()。
自動更新TIMESTAMP時建表語句應爲如下類似
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晚,這意味着,一個日期例如'1968-01-01',當作爲一個DATETIME或DATE值合法時,它不是一個正確TIMESTAMP值,並且 如果賦值給這樣一個對象,它將被變換到0。
1.範圍
timestamp:值不能早於1970或晚於2037
datetime:以'YYYY-MM-DD HH:MM:SS'格式檢索和顯示datetime 值。支持的範圍爲'1000-01-01 00:00:00'到'9999-12-31 23:59:59'
2.儲存
timestamp: 4個字節儲存 值以UTC格式保存 時區轉化,存儲時對當前的時區進行轉換,檢索時再轉換回當前的時區。
datetime: 8個字節儲存 實際格式儲存 與時區無關