引言今天我们把知识的焦点投向数据库方面 , 因为数据库是应用程序的基石 , 是一切生产的动力 。先说一个小小的知识点 , 在存储日期时间时 , 应该选用 timestamp 时间戳类型 , 还是应该用 datettime 类型?
文章插图
两者有何不同 , 效率如何 , 以及各自的优劣 。
学习时间MySQL中的 timestamp 通常用于跟踪记录的更改 , 并且通常在每次记录更改时进行更新 。如果要存储特定值 , 则应使用 datetime 字段 。
【3分钟短文 | 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 :_)
推荐阅读
- MySQL 5.6--------SSL连接最佳实战
- MySQL的自增ID用完了,插入数据会出现什么问题?
- 百万级MySQL的数据量,该如何快速的完成数据迁移?
- MySQL存时间,到底该用timestamp还是datetime?
- 第16问:创建一张表时,MySQL 的统计表是如何变化的?
- MySQL8.0.17版本之后,integer类型字段将不再显示长度
- MySQL- 5.7数据库sys schema总结--性能优化必备
- 整理下公司内部MySQL使用规范,分享给大家
- 软件测试基础——Linux系统搭建MySQL数据库
- 技术分享 | 如何优雅地在 Windows 上从 MySQL 5.6 升级到 5.7