我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL 中 datetime 和 timestamp 的区别与选择

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL 中 datetime 和 timestamp 的区别与选择

MySQL 中常用的两种时间储存类型分别是datetimetimestamp。如何在它们之间选择是建表时必要的考虑。下面就谈谈他们的区别和怎么选择。

1 区别

1.1 占用空间

类型 占据字节 表示形式
datetime 8 字节 yyyy-mm-dd hh:mm:ss
timestamp 4 字节 yyyy-mm-dd hh:mm:ss

1.2 表示范围

类型 表示范围
datetime '1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999'
timestamp '1970-01-01 00:00:01.000000' to '2038-01-19 03:14:07.999999'

timestamp翻译为汉语即"时间戳",它是当前时间到 Unix元年(1970 年 1 月 1 日 0 时 0 分 0 秒)的秒数。对于某些时间的计算,如果是以 datetime 的形式会比较困难,假如我是 1994-1-20 06:06:06 出生,现在的时间是 2016-10-1 20:04:50 ,那么要计算我活了多少秒钟用 datetime 还需要函数进行转换,但是 timestamp 直接相减就行。

1.3 时区

timestamp 只占 4 个字节,而且是以utc的格式储存, 它会自动检索当前时区并进行转换。

datetime以 8 个字节储存,不会进行时区的检索.

也就是说,对于timestamp来说,如果储存时的时区和检索时的时区不一样,那么拿出来的数据也不一样。对于datetime来说,存什么拿到的就是什么。

还有一个区别就是如果存进去的是NULL,timestamp会自动储存当前时间,而 datetime会储存 NULL。

2 测试

我们新建一个表

插入数据

查看数据,可以看到存进去的是NULLtimestamp会自动储存当前时间,而 datetime会储存NULL

把时区修改为东 9 区,再查看数据,会会发现 timestamp datetime 多一小时

如果插入的是无效的呢?假如插入的是时间戳

结果是0000-00-00 00:00:00,根据官方的解释是插入的是无效的话会转为 0000-00-00 00:00:00,而时间戳并不是MySQL有效的时间格式。

那么什么形式的可以插入呢,下面列举三种

//下面都是 MySQL 允许的形式,MySQL 会自动处理
2016-10-01 20:48:59
2016#10#01 20/48/59
20161001204859

3 选择 

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

如果是想要使用自动插入时间或者自动更新时间功能的,可以使用timestamp

如果只是想表示年、日期、时间的还可以使用 yeardatetime,它们分别占据 1、3、3 字节,而datetime就是它们的集合。

到此这篇关于MySQL datetime timestamp 的区别与选择的文章就介绍到这了,更多相关MySQL 中 datetime timestamp 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL 中 datetime 和 timestamp 的区别与选择

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL DATETIME 和 TIMESTAMP 数据类型有什么区别?

两种数据类型都以“YYYY-MM-DD HH:MM:SS”格式存储数据,并包含日期和时间。尽管有这些相似之处,但它们还是有以下区别 -范围 - 日期时间数据类型支持 1000 之间的日期和时间-01-01 00:00:00 和 9999-1
2023-10-22

mysql中 datatime与timestamp的区别说明

mysql中有三种日期类型: date(年-月-日) create table test(hiredate date); datetime(日期时间类型) create table test(hiredate datetime) times
2022-05-27

mysql中datatime与timestamp有什么区别

这篇文章主要介绍了mysql中datatime与timestamp有什么区别,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!mysql中有三种日期类型:date(年-月-日)create table te
2023-06-06

mysql中date和datetime的区别是什么

在MySQL中,DATE和DATETIME都是用于存储日期和时间信息的数据类型,但它们之间有一些区别:DATE类型存储日期信息,格式为YYYY-MM-DD,不包含时间信息。例如:2022-10-25。DATETIME类型存储日期和时间信息
mysql中date和datetime的区别是什么
2024-04-09

Swoole和Workerman的区别与选择,对PHP与MySQL的性能影响

随着互联网的发展,高并发处理成为了一个重要的问题,特别是对于一些大型的互联网应用来说,如何处理高并发成为了一种挑战。在这种情况下,Swoole和Workerman这两个PHP扩展应运而生。Swoole和Workerman都是针对PHP的高性
2023-10-21

阿里云和腾讯云服务器的区别与选择

在云计算的发展趋势下,越来越多的企业和个人选择使用云服务器。阿里云和腾讯云作为两大云计算服务提供商,它们的服务器有着各自的特点和优势。本文将详细对比分析阿里云和腾讯云服务器的区别,帮助用户更好地选择合适的云服务器。一、阿里云服务器阿里云服务器,也被称为ECS(弹性计算服务),是阿里云推出的一项云计算服务,旨在提供
阿里云和腾讯云服务器的区别与选择
2023-10-29

css中class和id选择器有什么区别

这篇文章将为大家详细讲解有关css中class和id选择器有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要
2023-06-14

阿里云服务器T6与T5的区别与选择

阿里云服务器T6和T5都是阿里云推出的企业级云计算产品,它们都提供了强大的计算能力和稳定的运行环境。然而,虽然它们都是阿里云服务器,但它们之间还是存在一些区别,这就需要我们在选择服务器时进行对比和选择。正文:阿里云服务器T6和T5的区别主要体现在以下几个方面:CPU和内存T6服务器提供了24核64GB的内存,而T
阿里云服务器T6与T5的区别与选择
2023-11-15

编程热搜

目录