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是不会做出任何转变

 

posted @ 2021-07-30 14:54  wf.zhang  阅读(94)  评论(0编辑  收藏  举报