zoukankan      html  css  js  c++  java
  • 【原创】mysql时间戳竟然不是从19700101 00:00:00开始的!

    众所周知,包括mysql文档上都这么写着:一个时间戳。范围是 '1970-01-01 00:00:00'2037 年间的任意时刻。

     但是根据最新发现,竟然不是从这个值开始的,而是从'1970-01-01 08:00:00开始的。看来搞mysql的这群人应该比我们提前1个小时上班^_^ 。不排除跟mysql版本和配置导致这个情况的可能性,借此抛砖引玉,希望能搞明白这个东东

    测试版本:

    version: 4.1.15

    mysql> select unix_timestamp('1970-01-01 00:00:01');
    +---------------------------------------+
    | unix_timestamp('1970-01-01 00:00:01') |
    +---------------------------------------+
    |                                     0 |
    +---------------------------------------+
    1 row in set (0.00 sec)

    mysql> select unix_timestamp('1970-01-01 08:00:00');
    +---------------------------------------+
    | unix_timestamp('1970-01-01 08:00:00') |
    +---------------------------------------+
    |                                     0 |
    +---------------------------------------+
    1 row in set (0.00 sec)

    mysql> select unix_timestamp('1970-01-01 08:00:01');
    +---------------------------------------+
    | unix_timestamp('1970-01-01 08:00:01') |
    +---------------------------------------+
    |                                     1 |
    +---------------------------------------+
    1 row in set (0.00 sec)

    mysql> select unix_timestamp('1970-01-01 09:00:00');
    +---------------------------------------+
    | unix_timestamp('1970-01-01 09:00:00') |
    +---------------------------------------+
    |                                  3600 |
    +---------------------------------------+
    1 row in set (0.00 sec)

    根据这几段代码,情况显而易见。


    最后发现。原来是因为时区的问题造成的。
    现在才终于发现为什么 要用时间戳了

  • 相关阅读:
    《Expert .NET 2.0 IL Assembler》 译者笔记 2
    游戏大厅升级日记 第2天
    《Metadata Tables》 Authors
    随便写写,蛮有趣的
    《Metadata Tables》 Introduction
    Oracle跨数据库的数据操作
    要换工作环境了
    javascript中几种操作打印的方法
    Datagrid中实现单选功能
    C#中利用Oracle事务删除表
  • 原文地址:https://www.cnblogs.com/jacktu/p/1083196.html
Copyright © 2011-2022 走看看