mysql中datetime和timestamp
区别
date和datetime,timestamp的区别
- date保存的是天,精确到天
- datetime,timestamp精确到秒
datetime和timastamp
datetime 和timestamp两者都是时间类型字段,格式都一致。
受时区影响不同
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更轻量,索引相对datetime更快。
默认值不同
datetime的默认值为null,timestamp的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。
存储方式不同
两者的存储方式不一样,对于timestamp,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于datetime,不做任何改变,基本上是原样输入和输出。
在mysql5.6之前的版本,CURRENT_TIMESTAMP只能用于timestamp类型,5.6版本之后,CURRENT_TIMESTAMP也能用于datetime类型了。
相关文章