date、datetime 的区别

  • 顾名思义,date 日期,datetime 日期时间,所以 date 是 datetime 的日期部分
  • MySQL 以 YYYY-MM-DD hh:mm:ss 格式检索和显示 datetime 值

datetime 支持的日期时间范围

1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

datetime 和 timestamp 的区别一:时间范围

  • 它们都是以 YYYY-MM-DD hh:mm:ss 格式检索和显示日期时间
  • 第一个区别是 timestamp 支持的日期时间范围不如 datetime 大

timestamp 支持的日期时间范围

是 UTC 时间

'1970-01-01 00:00:01' UTC  - '2038-01-19 03:14:07' UTC

什么是 UTC

协调世界时间,世界统一时间,世界标准时间,国际协调时间

datetime 或 timestamp 值可以包括尾部小数秒部分

  • 精度最高可达微秒(6 位小数位)
  • 插入到 datetime 或 timestamp 列的值中的任何小数部分都会被保留而不是被丢弃
  • 保留小数部分后,格式变成 YYYY-MM-DD hh:mm:ss[.fraction]

datetime 值的范围变成

1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999

timestamp 值的范围变成

1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.999999

datetime 和 timestamp 区别二:时区

  • 因为 timestamp 存储的是 UTC 时间,所以会有时区的概念,这也是区别于 datetime 地方之一
  • MySQL 对于 timestamp 字段值,会将客户端插入的时间从当前时区转换为 UTC 再进行存储;查询时,会从 UTC 转换回客户端当前时区再进行返回
  • 默认情况下,每个连接的当前时区是服务器的时间
  • 可以在每个连接的基础上设置时区,只要时区设置保持不变,该 timestamp 字段读写的值就会保持一致

和 datetime 的区别

datetime 没有时区概念,客户端传什么时间就存什么时间,省去了转换时区的步骤

datetime 和 timestamp 区别三:字节数

datetime 和 timestamp 存储的都是二进制而不是字符串

  • timestamp:4 个字节
  • datetime:5 个字节(有些教程会写 8 个,但官方文档目前 mysql8  中 datetime 是 5 个字节进行存储)

重点

  • 它们在保存小数秒时,都将使用额外的空间(1-3 个字节)
  • 如果存储 150w 条记录,1 个字节的差异可以忽略不计
  • 150 万条记录 * 每条记录 1 个额外字节/(1048576 字节/MB)= 1.43 MB

timestamp 节省一个字节是有代价的

  • 最开始也说了,timestamp 只能存储 '1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999' 的值
  • 但 datetime 可以存储 '1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999' 的任何值

Mysql - date、datetime、timestamp 的区别的更多相关文章

  1. 转 数据库中的 date datetime timestamp的区别

    转 数据库中的 date datetime timestamp的区别 DATETIME, DATE和TIMESTAMP类型是相关的.本文描述他们的特征,他们是如何类似的而又不同的. DATETIME类 ...

  2. date,datetime,timestamp 的区别

    date 表示年月日,如YY-MM-DD datetime 表示年月日和时间信息,如YY-MM-DD HH:MM:SS datestamp 和datetime表示的信息相同,但时间范围不同 时间范围 ...

  3. Mysql 实战关于date,datetime,timestamp类型使用

    最近在做一个项目 项目中 不同的小伙伴同时在不同的业务模块中用到了date,datetime,timestamp这三个类型 特别是datetime,timestamp这两个 如果不能理解到位  其实很 ...

  4. Mysql date,datetime的区别以及相互转换

    参考:https://blog.csdn.net/a3025056/article/details/62885104/ 在数据库中一直有这三个时间类型有点搞不太清楚. 今天就来说一下之间的区别,其实是 ...

  5. jackson/fastjson、mybatis、mysql date/datatime/timestamp、java Date/Timestamp关系详解

    jackson/fastjson序列化/反序列化: 默认情况下,jackson/fastjson将java Date/Timestamp类型序列化为时间戳,也就是1970年1月1日0点以来的毫秒数.如 ...

  6. Oracle中Date和Timestamp的区别

    Date和Timestamp精度不一样: 01)Timestamp精确到了秒的小数点(如:2018-11-13 16:40:03.698): 02)Date只精确到整数的秒(如:2018-11-13 ...

  7. Mysql中date,time,datetime,timestamp的区别

    区别: timestamp:时间戳.北京时间1970年01月01日08时00分00秒 起至现在的总秒数. datetime:带时分秒的完整时间,例如:1970-01-01 10:00:00 date: ...

  8. mysql中DATETIME,DATE和TIMESTAMP的区别整理

    简而言之.看格式,DATE 是 年月日YYYY-MM-DD,DATETIME 是 年月日时分秒YYYY-MM-DD HH:MM:SS,TIMESTAMP是 年月日时分秒YYYY-MM-DD HH:MM ...

  9. 简述MySQL数据库中的Date,DateTime,TimeStamp和Time类型

    DATETIME类型 定义同时包含日期和时间信息的值时.MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00' ...

  10. MySQL中Date,DateTime,TimeStamp和Time的比较

    名称 显示格式 显示范围 应用场景 后台取值 Date YYYY-MM-DD 1601-01-01 到 9999-01-01 当业务需求中只需要精确到天时, 可以用这个时间格式 @JSONField( ...

随机推荐

  1. 关于ModuleNotFoundError: No module named 'xxx' 模块导入失败问题

    我在执行数据库迁移命令的时候pycharm报错,提示ModuleNotFoundError: No module named 'ckeditor',但是我确实是导进来了,而且这个包也从settings ...

  2. CF39C-Moon Craters【dp】

    正题 题目链接:https://www.luogu.com.cn/problem/CF39C 题目大意 坐标轴上有\(n\)个圆,给出每个圆的位置\(c_i\)和半径\(r_i\). 要求选出最多的圆 ...

  3. P5445-[APIO2019]路灯【set,树状数组套线段树】

    正题 题目链接:https://www.luogu.com.cn/problem/P5445 题目大意 \(n+1\)个点,\(i\)和\(i+1\)个点之间有一条边,\(q\)个操作 断开/连接第\ ...

  4. Jmeter压测学习3---通过正则表达式提取token

    上一个随笔记录的是用json提取器提取token,这个随笔记录用正则表达式提取token 一.添加正则表达式 登录右击添加->后置处理器->正则表达式提取器 正则提取器参数说明: 要检查的 ...

  5. 我的Python学习记录

    Python日期时间处理:time模块.datetime模块 Python提供了两个标准日期时间处理模块:--time.datetime模块. 那么,这两个模块的功能有什么相同和共同之处呢? 一般来说 ...

  6. 使用Jacoco统计服务端代码覆盖情况实践

    一.背景 随着需求的迭代,需求增加的同时,有可能会伴随着一些功能的下线.如果不对系统已经不用的代码进行梳理并删除不需要的代码,那么就会增加系统维护成本以及理解成本.但经历比较长的迭代以及系统交接,可能 ...

  7. 【数据结构与算法】二叉树的 Morris 遍历(前序、中序、后序)

    前置说明 不了解二叉树非递归遍历的可以看我之前的文章[数据结构与算法]二叉树模板及例题 Morris 遍历 概述 Morris 遍历是一种遍历二叉树的方式,并且时间复杂度O(N),额外空间复杂度O(1 ...

  8. 使用python -m pip install 和 pip install 安装包有什么区别?

    如果去看源码的话,你会发现 pip 作为执行文件的入口点是 pip._internal.main. 另一方面,pip 作为模块运行时入口是 _main.py,而该模块也只是调用 pip.interna ...

  9. 如何评估 Serverless 服务能力?这份报告给出了 40 条标准

    编者按:两年前,我们还在讨论什么是 Serverless,Serverless 如何落地.如今,已经有评测机构给出了 40 条标准来对 Serverless 的服务能力进行评估,这些评估细则既是技术生 ...

  10. Java(10)认识类和对象

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201574.html 博客主页:https://www.cnblogs.com/testero ...