Mysql - date、datetime、timestamp 的区别
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 的区别的更多相关文章
- 转 数据库中的 date datetime timestamp的区别
转 数据库中的 date datetime timestamp的区别 DATETIME, DATE和TIMESTAMP类型是相关的.本文描述他们的特征,他们是如何类似的而又不同的. DATETIME类 ...
- date,datetime,timestamp 的区别
date 表示年月日,如YY-MM-DD datetime 表示年月日和时间信息,如YY-MM-DD HH:MM:SS datestamp 和datetime表示的信息相同,但时间范围不同 时间范围 ...
- Mysql 实战关于date,datetime,timestamp类型使用
最近在做一个项目 项目中 不同的小伙伴同时在不同的业务模块中用到了date,datetime,timestamp这三个类型 特别是datetime,timestamp这两个 如果不能理解到位 其实很 ...
- Mysql date,datetime的区别以及相互转换
参考:https://blog.csdn.net/a3025056/article/details/62885104/ 在数据库中一直有这三个时间类型有点搞不太清楚. 今天就来说一下之间的区别,其实是 ...
- jackson/fastjson、mybatis、mysql date/datatime/timestamp、java Date/Timestamp关系详解
jackson/fastjson序列化/反序列化: 默认情况下,jackson/fastjson将java Date/Timestamp类型序列化为时间戳,也就是1970年1月1日0点以来的毫秒数.如 ...
- Oracle中Date和Timestamp的区别
Date和Timestamp精度不一样: 01)Timestamp精确到了秒的小数点(如:2018-11-13 16:40:03.698): 02)Date只精确到整数的秒(如:2018-11-13 ...
- Mysql中date,time,datetime,timestamp的区别
区别: timestamp:时间戳.北京时间1970年01月01日08时00分00秒 起至现在的总秒数. datetime:带时分秒的完整时间,例如:1970-01-01 10:00:00 date: ...
- mysql中DATETIME,DATE和TIMESTAMP的区别整理
简而言之.看格式,DATE 是 年月日YYYY-MM-DD,DATETIME 是 年月日时分秒YYYY-MM-DD HH:MM:SS,TIMESTAMP是 年月日时分秒YYYY-MM-DD HH:MM ...
- 简述MySQL数据库中的Date,DateTime,TimeStamp和Time类型
DATETIME类型 定义同时包含日期和时间信息的值时.MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00' ...
- MySQL中Date,DateTime,TimeStamp和Time的比较
名称 显示格式 显示范围 应用场景 后台取值 Date YYYY-MM-DD 1601-01-01 到 9999-01-01 当业务需求中只需要精确到天时, 可以用这个时间格式 @JSONField( ...
随机推荐
- PolarDB PostgreSQL logindex 设计
背景介绍 PolarDB采用了共享存储一写多读架构,读写节点RW和多个只读节点RO共享同一份存储,读写节点可以读写共享存储中的数据:只读节点仅能各自通过回放日志,从共享存储中读取数据,而不能写入,只读 ...
- P6177-Count on a tree II/[模板]树分块
正题 题目链接:https://www.luogu.com.cn/problem/P6177 题目大意 \(n\)个点的一棵树\(m\)次询问树上颜色. 强制在线 \(1\leq n\leq 4\ti ...
- Python技法-序列拆分
Python中的任何序列(可迭代的对象)都可以通过赋值操作进行拆分,包括但不限于元组.列表.字符串.文件.迭代器.生成器等. 元组拆分 元组拆分是最为常见的一种拆分,示例如下: p = (4, 5) ...
- 零基础怎么学Java?Java的运行机制是什么?Java入门基础!
Java语言是当前流行的一种程序设计语言,因其安全性.平台无关性.性能优异等特点,受到广大编程爱好者的喜爱. 想学习Java语言的同学对于Java的运行机制是必须要了解的!! 计算机高级语言的类型主要 ...
- 【死磕 NIO】— Reactor 模式就一定意味着高性能吗?
大家好,我是大明哥,我又来了. 为什么是 Reactor 一般所有的网络服务,一般分为如下几个步骤: 读请求(read request) 读解析(read decode) 处理程序(process s ...
- 【二食堂】Beta - Scrum Meeting 9
Scrum Meeting 9 例会时间:5.24 20:00~20:20 进度情况 组员 当前进度 今日任务 李健 1. 文本导入.保存部分未完成issue 2. 知识图谱导出的前端issue3. ...
- MySQL 8.0安装 + 配置环境变量 + 连接 cmd
MySQL 安装教程 搜索 MySQL,进入官网,找到 download 点击适用于 window community 版本,点击图中第二个 450.7 M 的安装包进行下载 这里有五个选项,选择第二 ...
- elasticsearch的bulk(批量)操作
在es中我们可能会有这么一种需求,即有时需要批量向es中插入或更新或删除数据,如果一条一条数据的操作,那么速度必然很慢,那么es的bulk api就可以派上用场. delete 删除操作,只需要写一个 ...
- [hi3521] nand flash 的 boot 启动模式的区别?
spi nand flash 的 boot 启动模式选择.0:1 线 boot:1:4 线 boot.请问,1线boot和4线boot有什么区别呢?该如何选择呢? 收藏 顶 踩 回复 使用 ...
- HDI PCB一阶和二阶和三阶如何区分??
一阶板,一次压合即成,可以想像成最普通的板二阶板,两次压合,以盲埋孔的八层板为例,先做2-7层的板,压好,这时候2-7的通孔埋孔已经做好了,再加1层和8层压上去,打1-8的通孔,做成整板.三阶板就 ...