显示
TIMESTAMP列的显示格式与DATETIME列相同。
即显示宽度都固定在19字符,格式为:
代码语言:javascript复制YYYY-MM-DD HH:MM:SS
范围
- datetime 以
YYYY-MM-DD HH:MM:SS
格式检索和显示DATETIME值。支持的范围为1000-01-01 00:00:00
到9999-12-31 23:59:59
- TIMESTAMP值不能早于1970或晚于2037
储存
TIMESTAMP
- 4个字节储存
- 值以UTC格式保存
- 时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区
datetime
- 8个字节储存
- 实际格式储存
- 与时区无关
时区影响
- 先插入一个数据insert into
t8
values(now(), now()); - 改变客户端时区(东9区,日本时区)。
- 再次显示插入的数据,变化了,timestamp类型的数据 增加了 1个小时
timestamp
timestamp 默认允许为 “非空”(not null by default), 如果你在定义“ts TIMESTAMP DEFAULT NULL” 是非法的。 可以指定为空 null ,“ts TIMESTAMP NULL" ,这时可以在添加语句改变默认值。
代码语言:javascript复制ts2 TIMESTAMP NULL DEFAULT 0,
ts3 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
default (一个表中只能有一个列选择下面其中一种)
代码语言:javascript复制default CURRENT_TIMESTAMP
default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP
ON UPDATE 见上2