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

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

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

文章插图
 
两者有何不同 , 效率如何 , 以及各自的优劣 。
学习时间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 在系统失去改变之后 , 会自动变化 。这在程序生产数据时 , 会有影响 。我们通过例子来说明 。
3分钟短文 | MySQL存时间,到底该用timestamp还是datetime?

文章插图
 
首先在系统变量中查看 time_zone 相关配置 。
3分钟短文 | MySQL存时间,到底该用timestamp还是datetime?

文章插图
 
创建新表并写入两个数值 。
3分钟短文 | MySQL存时间,到底该用timestamp还是datetime?

文章插图
 
查看写入的数据 。
3分钟短文 | MySQL存时间,到底该用timestamp还是datetime?

文章插图
 
修改时区 , 再次查看表内的值 。我们发现 , timestamp 类型的字段时间随着时区的改变发生了改变 。而 datetime 字段则不会改变 。
写在最后本文通过对比 timestamp & datetime 字段的优劣和使用场景进行了阐述 , 并使用例子展示 timestamp 的便捷性 , 和隐藏的问题 。
HAppy coding :_)




    推荐阅读