常见四种:DATE, TIME, DATETIME, TIMESTAMP
DATE:
只表示年月日,YYYY-MM-DD
TIME:
只表示时分秒,HH-mm-SS
DATETIME:
DATE和TIME的结合。
TIMESTAMP:
和其他三者不一样,存储形式不一样,外在表现形式和DATETIME一样。
特点:会根据时区变化,如果需要考虑时区问题,可以使用。
如果NOT NULL,默认会根据创建和更新时间更新,即默认属性CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。
执行:show variables like '%explicit_defaults_for_timestamp%'; 可看到变量定义此默认行为,默认为off,可以改为on关闭。
在MySQL 5.6.5版本之前,Automatic Initialization and Updating只适用于TIMESTAMP,而且一张表中,最多允许一个TIMESTAMP字段采用该特性。
从MySQL 5.6.5开始,Automatic Initialization and Updating同时适用于TIMESTAMP和DATETIME,且不限制数量
参考:
https://www.cnblogs.com/ivictor/p/5028368.html