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是不会做出任何转变
古人学问无遗力,少壮工夫老始成。
纸上得来终觉浅,绝知此事要躬行。