专栏首页程序员小助手3分钟短文 | MySQL存时间,到底该用timestamp还是datetime?

3分钟短文 | MySQL存时间,到底该用timestamp还是datetime?

引言

今天我们把知识的焦点投向数据库方面,因为数据库是应用程序的基石,是一切生产的动力。先说一个小小的知识点,在存储日期时间时,应该选用 timestamp 时间戳类型,还是应该用 datettime 类型?

两者有何不同,效率如何,以及各自的优劣。

学习时间

MySQL中的 timestamp 通常用于跟踪记录的更改,并且通常在每次记录更改时进行更新。如果要存储特定值,则应使用 datetime 字段。

如果你在这两者之间犹豫不决,那就请优先使用时间戳。买搜狗中提供了。内置的函数用于时间,日期格式转换和计算,使用起来非常方便。比如日期时间差计算:

 SELECT DATE_ADD(my_datetime, INTERVAL 1 DAY)

或者是对UNIX时间戳的格式转换:

SELECT UNIX_TIMESTAMP(my_datetime)

如果要使用PHP对记录进行查询,则可以很容易地将值的格式更改为UNIX时间戳。

一个重要的区别是,DATETIME表示日期(如在日历中查找),和时间(如在时钟上可以看到),而TIMESTAMP表示明确定义的时间点。

如果应用程序处理时区,那么这可能非常重要。比如多久以前是'2019-09-01 16:31:00'?这取决于你所在的时区。对我来说,这只是几秒钟前,对你来说,它可能代表将来的时间。

相应地,如果我说自“ 1970-01-01 00:00:00 UTC”以来的1283351460秒,那么您确切地知道我在说什么时间点。

深入学习

时间戳 timestamp 在系统失去改变之后,会自动变化。这在程序生产数据时,会有影响。我们通过例子来说明。

首先在系统变量中查看 time_zone 相关配置。

创建新表并写入两个数值。

查看写入的数据。

修改时区,再次查看表内的值。我们发现,timestamp 类型的字段时间随着时区的改变发生了改变。而 datetime 字段则不会改变。

写在最后

本文通过对比 timestamp & datetime 字段的优劣和使用场景进行了阐述,并使用例子展示 timestamp 的便捷性,和隐藏的问题。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

本文分享自微信公众号 - 程序员小助手(mql45ea),作者:Rman

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 3分钟短文:说说Laravel模型关联关系最单纯的“一对一”

    关系型数据库提供了非常好用的数据关联绑定模式,使用SQL语句可以方便地进行关联数据查询和操作。

    程序员小助手
  • 3分钟短文:Laravel把数据验证的手伸向“请求体”

    上一章讲述了表单数据验证,从前端页面接收用户的输入信息,通过POST方法提交数据到相应路由地址,

    程序员小助手
  • 3分钟短文:Laravel控制器用法光速入门

    上一章我们介绍了laravel路由注册中的“花拳绣腿”,样样都是那么优雅而实用。路由传递过来的参数,在经过中间件验证和导向之后,应该去控制器接受处理了。

    程序员小助手
  • WordPress找回忘记密码

    这种方法需要你的主机空间支持发送邮件功能,即支持mail()函数。Wordpress登录页面-忘记密码,按提示输入用户名或注册邮件,即可能过邮件收到密码激活链接...

    爱知汇
  • 面试求职必胜法宝

    大家好,我是光城,目前研三,在秋招提前批中拿到不低于5个offer,有3个是ssp的offer,几个sp的,当然还有一些是白菜,同时也有很多是失败的,在找工作期...

    公众号guangcity
  • 自动化运维之PSSH

    PSSH提供OpenSSH和相关工具的并行版本。包括pssh,pscp,prsync,pnuke和pslurp。该项目包括psshlib,可以在自定义应用程序中...

    惨绿少年
  • 以太坊合约交易大小的上限是多少?

    用户1408045
  • MVC项目开发中那些用到的知识点(登录权限认证)

         话说从开始接触MVC到现在也有一段时间了,记得好像是从2012年8月初开始做项目的。就记录一下自己所用到的且认为重要的知识点吧。

    aehyok
  • Mybatis表之间的关系分析 注解开发 @One @Many介绍 一对一 一对多

    一对多,多对多:通常情况下我们都是采用延迟加载 多对一,一对一:通常情况下我们都时采用立即加载

    韦恩少爷的背
  • 快速学习-什么是分布式文件系统

    分布式文件系统解决了海量文件存储及传输访问的瓶颈问题,对海量视频的管理、对海量图片的管理等。

    cwl_java

扫码关注云+社区

领取腾讯云代金券