首先我们看一下timestamp与datetime的对比如下:

对比 timestamp datetime
存储空间 TIMESTAMP占用4个字节 DATETIME占用8个字节
时区 TIMESTAMP实际记录的是1970-01-01 00:00:01到现在的数数,受时区影响 DATETIME不受时区影响
时间范围 ‘1970-01-01 00:00:01’ UTC ~ ‘2038-01-19 03:14:07’ UTC ‘1000-01-01 00:00:00’ ~ ‘9999-12-31 23:59:59’

1.Datetime与timestamp的格式问题

答:两者都可用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期。
但是对于Datetime它可分为两部分:date部分和time部分,其中,date部分对应格式中的“YYYY-MM-DD”,time部分对应格式中的“HH:MM:SS[.fraction]”。对于date字段来说,它只支持date部分,如果插入了time部分的内容,它会丢弃掉该部分的内容,并提示一个warning。
具体可参照博客:https://www.cnblogs.com/ivictor/p/5028368.html

2.什么是UTC?

答:协调世界时,又称世界统一时间,世界标准时间,国际协调时间,简称UTC
不属于任意时区
中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8。
时区(Time Zone)是地球上的区域使用同一个时间定义。1884年在华盛顿召开国际经度会议时,为了克服时间上的混乱,规定将全球划分为24个时区。在中国采用首都北京所在地东八区的时间为全国统一使用时间。

例:已知东京(东九区)时间为5月1日12:00,求北京(东八区)的区时?北京时间=12:00-(9-8)=11:00(即北京时间为5月1日11:00)。

3.对于MySQL中timestamp数据类型的特点,为什么选择timestamp类型??

答:int类型占用4字节,datetime占用8字节,timestamp占用4字节;通常情况下在选择表中列的数据类型时我们要选择能满足存储需要的,最小的数据类型,在使用MySQL数据库时有很多常见的误解,其中使用int类型来保存日期数据会提高数据读取的效率就是比较常见的一个误解。显然INT要比datetime类型小很多,同时MySQL又提供了两个非常好用的函数FROM_UNIXTIME() 和UNIX_TIMESTAMP(),使用这两个函数可以方便的在INT和DATETIME类型之间进行转换,但是使用INT类型存储时间也给我们带来了不少的麻烦:

1.数据的可读性比较差,我们在查看数据时不能直观的看出时间列中记录的一串整数所代表的时间
2.每次进行显示时都要通过函数进行转换,增加了数据使用的复杂成度。
那有没有什么更好的方法来存储日期数据呢?这就要用到我们标题中所说到的timestamp类型了,timestamp类型的特点如下:
1.存储占用 4个字节,以年月日小时分秒的日期型式显示
2.存储范围’1970-01-01 00:00:01’ to ‘2038-01-19 03:14:07’.
3.以UTC时区进行存储,但是以系统当前时间进行显示
4.可以在insert和update时把值自动更新为当前时间

由以上特点可以知道,timestamp存储占用的空间和INT类型相同,实际上timestamp类型的数据在存储时就是被保存成INT类型的数据来存储的,这和我们使用INT来存储日期时间数据可以说是完全一样的。由于同样是使用INT类型来保存数据,所以和INT类型一样其存储的时间范围也是有限制的,
**这一点大家一定要注意,超过了这个范围的日期数据建议大家使用datetime类型来保存。**另外timestamp数据存储时是以UTC时区来保存的,在显示时MySQL会自动的把数据转换为当前连接所对应时间来显示。

可见,使用timestamp来存储日期时间数据不但保证了数据类型的大小同INT类型一样,同时可以显示为日期时间格式,这在给我们使用数据带来了很多的方便。所以强烈建议大家,使用timestamp类型来存储日期数据而不要再使用INT类型了。(转自:https://www.imooc.com/article/16158)

timestamp和datetime的区别相关推荐

  1. TIMESTAMP和DATETIME的区别(海信面试题)

    TIMESTAMP和DATETIME的相同点: 两者都可用来表示 YYYY-MM-DD HH:MM:SS 类型的日期 TIMESTAMP和DATETIME的不同点: 1. 两者的存储方式不一样 对于T ...

  2. MySQL时间格式TIMESTAMP和DATETIME的区别

    时区,timestamp会跟随设置的时区变化而变化,而datetime保存的是绝对值不会变化 自动更新,insert.update数据时,可以设置timestamp列自动以当前时间(CURRENT_T ...

  3. date,datetime和timestamp数据类型有什么区别

    一个完整的日期格式如下:YYYY-MM-DD HH:MM:SS[.fraction],它可分为两部分:date部分和time部分,其中,date部分对应格式中的"YYYY-MM-DD&quo ...

  4. MySQL中有关TIMESTAMP和DATETIME的总结

    一.MySQL中如何表示当前时间? 其实,表达方式还是蛮多的,汇总如下: CURRENT_TIMESTAMP CURRENT_TIMESTAMP() NOW() LOCALTIME LOCALTIME ...

  5. Mysql的timestamp与datetime

    1.MySQL表示当前时间 CURRENT_TIMESTAMP CURRENT_TIMESTAMP() NOW() LOCALTIME LOCALTIME() LOCALTIMESTAMP LOCAL ...

  6. mysql show timestamp_MySQL中有关TIMESTAMP和DATETIME的总结

    一.MySQL中如何表示当前时间? 其实,表达方式还是蛮多的,汇总如下: CURRENT_TIMESTAMP CURRENT_TIMESTAMP() NOW() LOCALTIME LOCALTIME ...

  7. linux mysql timestamp_MySQL时间类型Timestamp和Datetime 的深入理解

    MySQL数据库常用的时间类型有timestamp和datetime,两者主要区别是占用存储空间长度不一致.可存储的时间也有限制,但针对不同版本下,timestamp字段类型的设置需要慎重,因为不注意 ...

  8. layui 日期格式不正确(date、datetime)区别

    layui 日期格式不正确(date.datetime)区别 问题截图:如下文代码二 代码示下: <div class="layui-form-item"><la ...

  9. python datetime to timestamp_python timestamp和datetime之间转换详解

    做开发中难免时间类型之间的转换, 最近就发现前端js和后端django经常要用到这个转换, 其中jsDate.now()精确到毫秒,而Python中Datetime.datetime.now()是精确 ...

  10. timestamp与datetime的对比

    首先我们看一下timestamp与datetime的对比如下: 类型 TIMESTAMP DATETIME 不同点 存储空间 TIMESTAMP占用4个字节 DATETIME占用8个字节 时区 TIM ...

最新文章

  1. python【Matlibplot绘图库】基本使用(真の能看懂~!)
  2. python报错_python 常见报错
  3. 【Python 】单引号和双引号有什么区别?
  4. 【Java学习笔记三】抽象类与接口
  5. GitHub 5.9K,目标检测、跟踪、关键点全覆盖的年度开源项目来了!
  6. Flume-NG源码阅读之Interceptor(原创)
  7. 雷林鹏分享:PHP 表单 - 验证邮件和URL
  8. Spring Cloud 2020 版本最佳实践,你落伍了!
  9. MyBatis mysql 字符串拼接
  10. 终结者2免费教程_如何在模拟器上玩(匹配的还是手机服)_适用最新客户端
  11. iframe透明设置
  12. ReviewBoard代码评审实践总结
  13. html文本框颜色填充颜色设置,Excel2007中设置文本框填充方案 文本框填充颜色
  14. mysql错误:Table XXX is marked as crashed and should be repaire
  15. Java多线程系列--【JUC锁05】-非公平锁
  16. Java 结构化数据处理开源库 SPL
  17. html去除背景颜色怎么设置,word背景颜色怎么去掉
  18. php 2016 大麦户源码,2018最新大麦户源码刷客源码信誉源码完美运营带实时到账接口...
  19. 完了!生产事故!几百万消息在消息队列里积压了几个小时!
  20. Ubuntu 10.04内核源码树的编译和安装

热门文章

  1. 从卷积到residual dense network: Convolution, ResNet, DenseNet and ResDenseNet解读
  2. matlab构建boost电路,基于matlab的boost电路仿真.doc
  3. win搭建7java环境_WIN7java环境变量搭建方法
  4. web技术基础---网站设计说明书
  5. 计算机自检后反复重启 主引导,电脑开机老是重复重启的解决方法
  6. Windows2012开机启动项设置
  7. 治愈系英语笔记-3-一般现在时、疑问词主语相同的句子
  8. 音乐标签修改 android,音乐标签Android版
  9. 机器视觉——镜头介绍
  10. SimpleDateFormat 使用TimeZone