Mysql中多种日期类型——DATETIME、TIMESTAMP、TIME、YEAR、DATE的区分

问题描述

Mysql设置time时,会提示多种time格式。使用go语言的time.Time类型,又更容易混肴,因此做一下区分。
在这里插入图片描述

time类型

time类型保存的是一个时分秒,比如10:00:00这样的内容。和go语言中的time.Time格式完全不是一回事。
同样的,还有YEAR类型,则是只保存一个年份。
DATE类型则是只保存年月日。

datetime和timestamp类型

这两个比较容易混肴还是,之前一直也没搞懂。顺带吐槽一下Google这个智能推荐的答案,这说了个啥呢…
在这里插入图片描述

二者存储的内容相同,均为 YYYY-MM-DD HH:MM:SS

区别

1、占用大小不同:
DATETIME 8字节
TIMESTAMP 4字节。

2、取值范围不同:
DATETIME类型范围: '1000-01-01 00:00:00'~'9999-12-3 23:59:59'
TIMESTAMP类型范围: '1970-01-01 00:00:01'UTC~'2038-01-19 03:14:07'UTC

3、存储时区不同:
DATETIME 在存储日期数据时,按实际输入的格式存储,即输入什么就存储什么,与时区无关;
TIMESTAMP 值的存储是以 UTC(世界标准时间)格式保存的,存储时对当前时区进行转换,检索时再转换回当前时区。即查询时,根据当前时区的不同,显示的时间值是不同的。

总结

1 在满足使用条件的情况下,占据存储空间越少越好,此时选择timestamp比datetime更好.
2 timestamp类型的存储,是以UTC时区来保存的,在显示时会自动将日期数据转换,如果时间的场景对应多个时区,此时选择timestamp比datetime更好.
3 关于日期的使用范围, timestamp类型最大只支持到2038-01-19年,所以如果使用的日期时间较大, 则选择datetime比timestamp更好.

贴一个另一个博文的总结
但对我而言,我觉得在数据量不大、不存在跨国业务的数据库时候,用DATETIME会方便一些。因为这样可以避免因时区问题导致的错误。

直接引用一张图来对比方便。图源
在这里插入图片描述

相关推荐

  1. MySQL常见几种日志类型【重点】

    2023-12-28 11:40:03       35 阅读
  2. MySQL获取指定日期区间内所有日期

    2023-12-28 11:40:03       9 阅读
  3. MySQL数据类型

    2023-12-28 11:40:03       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-28 11:40:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-28 11:40:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-28 11:40:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-28 11:40:03       18 阅读

热门阅读

  1. 贪心算法的运用

    2023-12-28 11:40:03       34 阅读
  2. el-select可输入下拉框限制长度

    2023-12-28 11:40:03       31 阅读
  3. vue 预览 pdf、word、excel

    2023-12-28 11:40:03       40 阅读
  4. Vue 3 中安装并使用 Axios 详细步骤+样例代码详解

    2023-12-28 11:40:03       30 阅读
  5. Ajax

    2023-12-28 11:40:03       28 阅读
  6. PDF.js介绍以及使用

    2023-12-28 11:40:03       37 阅读
  7. PDF是什么格式的文件

    2023-12-28 11:40:03       37 阅读
  8. Unity相机跟随角色移动

    2023-12-28 11:40:03       33 阅读
  9. C# JsonString转Object以及Object转JsonString

    2023-12-28 11:40:03       34 阅读