【原创】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)
根据这几段代码,情况显而易见。
最后发现。原来是因为时区的问题造成的。
现在才终于发现为什么 要用时间戳了