MySQL 中 date datetime timestamp 的区别

MySQL 中 date datetime timestamp 的区别

date 精度到天,格式为:YYYY-MM-DD 2021-07-30

timestamp 精确到秒 YYYY-MM-DD HH:MM:SS 2021-07-30 14:31:20

datetime 精确到秒 YYYY-MM-DD HH:MM:SS 2021-07-30 14:31:20

默认值
timestamp的默认值不为null,且为系统当前时间(CURRENT_TIMESTAMP)
datetime的默认值为null


时区
timestamp会跟随设置的时区变化而变化
datetime保存的是绝对值不会变化


字节
timestamp储存占用4个字节
datetime储存占用8个字节


范围
timestamp可表示范围:1970-01-01 00:00:00~2038-01-09 03:14:07
datetime支持的范围更宽1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

数据库存储
timestamp存储的时间会自动转换为utc(格林威治标准时间),
北京时间是东八区和它差了8个小时,再存储的时候会减去8小时,所以如果你是用mybatis操作的读取,需要再加上8小时
datetime是不会做出任何转变

古人学问无遗力,少壮工夫老始成。 纸上得来终觉浅,绝知此事要躬行。
原文地址:https://www.cnblogs.com/wf-zhang/p/15079587.html