广告
返回顶部
首页 > 资讯 > 数据库 >mysql中datatime与timestamp有什么区别
  • 614
分享到

mysql中datatime与timestamp有什么区别

2023-06-06 11:06:32 614人浏览 独家记忆
摘要

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

这篇文章主要介绍了mysql中datatime与timestamp有什么区别,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!

Mysql中有三种日期类型:

date(年-月-日)

create table test(hiredate date);

datetime(日期时间类型)

create table test(hiredate datetime)

timestamp(邮戳类型,保存年-月-日 时-分-秒)

create table test(hiredate timestamp)

datetime 和timestamp的不同点

1、两者的存储方式不一样

对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。

2、两者所能存储的时间范围不一样

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'。

总结:TIMESTAMP和DATETIME除了存储范围和存储方式不一样,没有太大区别。当然,对于跨时区的业务,TIMESTAMP更为合适。

3、自动初始化和更新

自动初始化指的是如果对该字段(譬如上例中的hiredate字段)没有显性赋值,则自动设置为当前系统时间。

自动更新指的是如果修改了其它字段,则该字段的值将自动更新为当前系统时间。

它与“explicit_defaults_for_timestamp”参数有关。

默认情况下,该参数的值为OFF

mysql> show variables like '%explicit_defaults_for_timestamp%';+---------------------------------+-------+| Variable_name | Value |+---------------------------------+-------+| explicit_defaults_for_timestamp | OFF |+---------------------------------+-------+row in set (0.00 sec)

总结:timestamp有自动初始化和更新,当你update某条记录的时候,该列值会自动更新,这是和datatime最大的区别。

补充:DATETIME与TIMESTAMP的一些区别与问题

今天遇到一个问题,明明数据有更新,update_time字段却还停留在创建数据的时候。

按常理来说这个字段应该是自动更新的才对。

查了一下表结构,

`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP

发现update_time字段的类型是datetime

由此牵扯出两个问题,(1)timestamp与datetime的区别;(2)CURRENT_TIMESTAMP为什么能用于datetime类型

timestamp与datetime的区别

a)DATETIME的默认值为null;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。

这个区别就解释了为什么平时我们都不用可以管这个字段就能自动更新了,因为多数时候用的是timestamp;而此处用的是datetime,不会有自动更新当前时间的机制,所以需要在上层手动更新该字段

b)DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。

这个区别解释了为啥timestamp类型用的多

c)两者的存储方式不一样 ,对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。

d)两者所能存储的时间范围不一样

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'。

CURRENT_TIMESTAMP为什么能用于datetime类型

在mysql 5.6之前的版本,CURRENT_TIMESTAMP只能用于timestamp类型,

6版本之后,CURRENT_TIMESTAMP也能用于datetime类型了

select version()查了一下数据库发现确实版本是5.6.29

以上就是编程网小编为大家收集整理的mysql中datatime与timestamp有什么区别,如何觉得编程网网站的内容还不错,欢迎将编程网网站推荐给身边好友。

您可能感兴趣的文档:

--结束END--

本文标题: mysql中datatime与timestamp有什么区别

本文链接: https://www.lsjlt.com/news/246692.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • mysql中datatime与timestamp有什么区别
    这篇文章主要介绍了mysql中datatime与timestamp有什么区别,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!mysql中有三种日期类型:date(年-月-日)create table te...
    99+
    2023-06-06
  • mysql中 datatime与timestamp的区别说明
    mysql中有三种日期类型: date(年-月-日) create table test(hiredate date); datetime(日期时间类型) create table test(hiredate dat...
    99+
    2022-05-27
    mysql datatime timestamp
  • MySQL中datetime与timestamp有什么区别
    这期内容当中小编将会给大家带来有关MySQL中datetime与timestamp有什么区别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  相同  显示  TIMEST...
    99+
    2022-10-18
  • MySQL 中 datetime 和 timestamp 的区别与选择
    目录1 区别1.1 占用空间1.2 表示范围1.3 时区2 测试3 选择 MySQL 中常用的两种时间储存类型分别是datetime和 timestamp。如何在它们之间选...
    99+
    2022-11-12
  • MySQL DATETIME 和 TIMESTAMP 数据类型有什么区别?
    两种数据类型都以“YYYY-MM-DD HH:MM:SS”格式存储数据,并包含日期和时间。尽管有这些相似之处,但它们还是有以下区别 -范围 - 日期时间数据类型支持 1000 之间的日期和时间-01-01 00:00:00 和 9999-1...
    99+
    2023-10-22
  • MySQL 5.6中timestamp和datetime区别有哪些
    小编给大家分享一下MySQL 5.6中timestamp和datetime区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧...
    99+
    2022-10-18
  • nosql与mysql有什么区别
    小编给大家分享一下nosql与mysql有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL与NoSQL都是市场上...
    99+
    2022-10-18
  • Oracle与Mysql有什么区别
    Oracle与Mysql有什么区别,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  Oracle与Mysql的区别:  Ora...
    99+
    2022-10-18
  • redis与mysql有什么区别
    小编给大家分享一下redis与mysql有什么区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!区别分析如下:1、mysql和redis的数据库类型mysql是关系型数据库,主要用于存放持...
    99+
    2022-10-18
  • MySQL语法中=与:=有什么区别
    这篇文章主要介绍“MySQL语法中=与:=有什么区别”,在日常操作中,相信很多人在MySQL语法中=与:=有什么区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL语...
    99+
    2022-10-18
  • mysql中LEAVE与ITERATE有什么区别
    mysql中LEAVE与ITERATE有什么区别?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。LEAVE语句LEAVE语句主要用于跳出循环控制。其语法形式如下:LEAVE la...
    99+
    2023-06-14
  • mysql中的char与varchar有什么区别
    这篇文章将为大家详细讲解有关mysql中char与varchar的区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。varchar类型用于存储可变长的字符串,是比较常见常...
    99+
    2022-10-18
  • key与index在Mysql中有什么区别
    本篇文章给大家分享的是有关key与index在Mysql中有什么区别,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。我们先来看下代码:ALTER...
    99+
    2022-10-18
  • sql与mysql有什么区别和联系
    下文主要给大家带来sql与mysql有什么区别和联系,希望这些内容能够带给大家实际用处,这也是我编辑sql与mysql有什么区别和联系这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。  &...
    99+
    2022-10-18
  • $*与$@中Shell中有什么区别
    这篇文章给大家介绍$*与$@中Shell中有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当 $* 和 $@ 不被双引号" "包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据...
    99+
    2023-06-06
  • MySQL中MyISAM与InnoDB区别是什么
    MySQL中MyISAM与InnoDB区别是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!MyISAM和InnoDB的...
    99+
    2022-10-18
  • Mysql中utf8_general_ci与utf8_unicode_ci有什么本质上的区别
    下文给大家带来关于Mysql中utf8_general_ci与utf8_unicode_ci有什么本质上的区别,感兴趣的话就一起来看看这篇文章吧,相信看完Mysql中utf8_general_ci与utf8...
    99+
    2022-10-18
  • NULL与MySQL空字符串有什么区别
    本篇内容主要讲解“NULL与MySQL空字符串有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“NULL与MySQL空字符串有什么区别”吧!  下述语句是...
    99+
    2022-10-18
  • mysql的UNIX_TIMESTAMP()与php的time()有什么区别
    MySQL的UNIX_TIMESTAMP()函数返回当前日期和时间的UNIX时间戳,即从1970年1月1日00:00:00开始的秒数...
    99+
    2023-08-15
    mysql php
  • mysql中分表与分区的区别是什么
    这篇文章将为大家详细讲解有关mysql中分表与分区的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一,什么是mysql分表,分区什么是分表,从表面...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作