![7395a0857ab94720c041fc90cf74095f.gif](https://i-blog.csdnimg.cn/blog_migrate/50b68f9e52449fa5c6b7ac9bedcddaeb.gif)
点击上方蓝字关注我哦
Mysql表示时间(含年月日时分秒)的类型主要有:datetime和 timestamp。它们之间有什么区别, 我们在实际的项目中又该怎么选择呢?今天,『对比君』来给大家梳理一番。datetime
范围:表示年月日时分秒, '1000-01-01 00:00:00' to '9999-12-31 23:59:59'
精确度:mysql 5.7 之后的版本,在默认的秒精确度上,可以带小数,最多带6位小数, 比如你定义datetime(3), 则表示毫秒精确3位,如2020-07-01 23:59:10:666
字节:8字节
timestamp
表示 UTC时间的年月日时分秒范围: '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07'UTC
精确度:mysql 5.7 之后的版本,在默认的秒精确度上,可以带小数,最多带6位小数, 比如你定义datetime(3), 则表示毫秒精确3位,如2020-07-01 23:59:10:666
字节:4字节, 最大值是2的31次方减1,也就是2147483647,转换成北京时间就是2038-01-19 11:14:07
敲黑板时间
综上所以,它们的区别:
(1) 时间范围不一样,TIMESTAMP 要小很多 ,且最大范围为2038-01-19 03:14:07.999999,到期也不远了。
(2)对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。
好文推荐
宽表 VS 窄表
【Maven打包】pom, jar,war 对比
【微服务】 Spring Cloud 对比 K8S
【Redis 存储数据】 String VS Hash
![962ead7327c044be3697f99e2f9640db.png](https://i-blog.csdnimg.cn/blog_migrate/ca10bfd4d8da47049964aef0d092b53f.png)
点亮在看,你最好看