介绍
这篇文章给大家介绍在MySQL数据库中利用时间戳怎么跳过时区,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
查看当前数据库时区
mysql>显示变量如“% time_zone %“; + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | | Variable_name |值 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | system_time_zone |中科| | time_zone | +喂饲| + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + 2行集(0.30秒)
查看表结构
mysql>desc timestamp_test; + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | |字段类型零额外默认关键| | | | | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + int id | | |没有零| | PRI | auto_increment | 零| | created_time | datetime |是| | | 零| | created_at |时间戳|是| | | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 3行集(0.26秒)
插入数据
mysql>插入timestamp_test (created_time created_at)值(& # 39;2020-12-09 08:00:00& # 39;,& # 39;2020-12-09 08:00:00& # 39;); 查询好了,1行影响(0.22秒) mysql>从timestamp_test select *; + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + | | id created_time | created_at | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + | 1 | 2020-12-09 08:00:00 | 2020-12-09 08:00:00 | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + 1行集(0.06秒)
这个时间看起来是没问题的,那么我们尝试修改时区再插入数据
mysql>设置time_zone=? 00:00"; 查询好,0行影响(0.03秒) mysql>插入timestamp_test (created_time created_at)值(& # 39;2020-12-09 08:00:00& # 39;,& # 39;2020-12-09 08:00:00& # 39;); 查询好了,1行影响(0.03秒) mysql>设置time_zone=? 08:00"; 查询好,0行影响(0.04秒)
这时候再查看数据,两条插入的SQL代码> <代码>是一样的,但是发现查询的结果是不一样的
这两条数据<代码> created_at> 代码的相差正好是时区的时间差
mysql>从timestamp_test select *; + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + | | id created_time | created_at | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + | 1 | 2020-12-09 08:00:00 | 2020-12-09 08:00:00 | | 2 | 2020-12-09 08:00:00 | 2020-12-09 16:00:00 | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + 2行集(0.06秒)
再看一下实际存储的时间戳,然后我们变化时区,发现字段时间变化了,但是原始的时间戳数据没变
mysql>从timestamp_test select *, unix_timestamp (created_at); + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | | id created_time | created_at | unix_timestamp (created_at) | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | 1 | 2020-12-09 08:00:00 | 2020-12-09 08:00:00 | 1607472000 | | 2 | 2020-12-09 08:00:00 16:00:00 | 2020-12-09 | 1607500800 | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 2行集(0.06秒) mysql>设置time_zone=? 00:00"; 查询好,0行影响(0.09秒) mysql>显示变量如“% time_zone %“; + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | | Variable_name |值 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | system_time_zone |中科| | | time_zone | + 00:00 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + 2行集(0.08秒) mysql>从timestamp_test select *, unix_timestamp (created_at); + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | | id created_time | created_at | unix_timestamp (created_at) | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | 1 | 2020-12-09 08:00:00 | 2020-12-09就是| 1607472000 | | 2 | 2020-12-09 08:00:00 | 2020-12-09 08:00:00 | 1607500800 | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 2行集(0.18秒)在MySQL数据库中利用时间戳怎么跳过时区