MySQL 中 datetime 与 timestamp 的区别

本文介绍了数据库中datetime和timestamp两种时间类型的区别。timestamp在存储时采用UTC,并会根据时区转换,而datetime不进行时区转换,存储原样。在超过Linux时间限制或服务器时区不同时,推荐使用datetime。此外,timestamp在存储NULL时会自动填充当前时间,datetime则保持NULL。了解这些差异对于数据库设计和查询至关重要。
摘要由CSDN通过智能技术生成

1、内存占用&时间范围

类型空间占用(字节)时间范围
datetime8'1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999'
timestamp4'1970-01-01 00:00:01.000000' to '2038-01-19 03:14:07.999999'

2、时区

(1)timestamp 采用utc的格式进行存储,会自动检索当前时区并进行转换。

即不同的检索时区,拿到的数据也是不一样的。

(2)datetime 不会进行时区转换。

存的是什么,拿到的就是什么。

(3)NULL
当存储值为NULL时,timestamp 会自动存储当前时间,datetime 会存储NULL。

3、应用场景 

(1)如果在时间上要超过Linux时间的,或者服务器时区不一样的就建议选择 datetime

4、写在最后

 表示年、日期、时间的还可以使用 year、 date、 time,空间占用分别为 1、3、3 字节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值