在mysql中表示时间的数据类型有DATE 、 DATETIME YEAR TIMESTAMP TIME五种类型,它们的作用如下表格:
类型 | 显示格式 | 取值 | 存储空间 | 零值 |
DATETIME | YYYY-MM-DD HH:MM:SS | '1000-01-01 00:00:00'到'9999-12-31 23:59:59' | 8 | 0000-00-00 00:00:00 |
TIMESTAMP | YYYY-MM-DD HH:MM:SS | 是‘1970-01-01 00:00:00’到2038-01-19 03:14:07 | 4 | 0000-00-00 00:00:00 |
DATE | YYYY-MM-DD | '1000-01-01'到'9999-12-31 | 3 | 0000-00-00 |
TIME | HH:MM:SS | -838:59:59'到'838:59:59' | 3 | 00:00:00 |
YEAR | YYYY | 1901到2155 | 1 | 0000 |
SQL Code
1
2 3 4 5 6 |
CREATE
TABLE TestTime(
Mdate date,Mdatatime datetime, Mtimestamp TIMESTAMP, Mtime TIME, Myear YEAR); INSERT INTO TestTime VALUES(NOW(),NOW(),NOW(),NOW(),NOW()); |
TIMESTAMP 和 DATETIME 的显示形式看起来是一样的但实际上 TIMESTAMP 的功能更加强大
在新建表时,列为 timestamp类型可以设置一个默认值,若没有插入此列的数据时,此列都会自动更新为当前时间
SQL Code
1
2 3 4 5 |
CREATE
TABLE TimeStam(
id VARCHAR( 3) PRIMARY KEY, Time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); INSERT INTO TimeStam VALUES( '001', '1993-02-04 12:2:2'); INSERT INTO TimeStam (id) VALUES( '002'); |
在更新表时,可以设置timestamp类型的列自动更新时间为当前时间
SQL Code
1
|
UPDATE TimeStam
SET
Time=
CURRENT_TIMESTAMP
WHERE id=
'001';
|