【原创】mysql时间戳竟然不是从1970-01-01 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)

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


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

posted @ 2008-02-27 09:24  jacktu  阅读(9346)  评论(3编辑  收藏  举报