区别点
- TIMESTAMP占用存储空间少:TIMESTAMP占用4个字节,DATETIME占用5个字节(5.6.4之后);
- DATETIME时间范围大:TIMESTAMP最大时间只能到2038-01-19,DATETIME最大时间到9999-12-31,相当于没有上限;
自动初始化
定义:列的默认值;
对于DATETIME和TIMESTAMP类型,使用DEFAULT CURRENT_TIMESTAMP表示默认值为当前时间,DEFAULT 0默认为0;
自动更新
定义:更新数据时,DATETIME和TIMESTAMP类型的列数据自动进行更新。使用ON UPDATE CURRENT_TIMESTAMP表示有数据更新时,时间更新为当前时间。
示例代码
CREATE TABLE 'table1' (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`gmt_create` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间默认为当前时间',
`gmt_modified` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间和更新时间默认为当前时间'
);
官网说明:https://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html