为什么将‘1965-05-15’格式的日期转换为时间戳 TIMESTAMP 后会得到结果 0(Zero)?


众所周知,借助 MySQL 的 UNIX_TIMESTAMP 函数,我们可以根据给定的日期/日期时间生成秒数。但当我们尝试将“1965-05-15”这样的日期转换为时间戳时,函数会给出结果 0(Zero),因为 TIMESTAMP 的范围介于“1970-01-01 00:00:01”和“2038-01-19 08:44:07”之间。因此,超出 TIMESTAMP 范围的日期值无法转换为时间戳,总是会返回结果 0。

以下为示例:

mysql> Select UNIX_TIMESTAMP ('1965-05-15');
+----------------------------------------------+
| unix_timestamp('1965-05-15 05:04:30')        |
+----------------------------------------------+
|                                       0      |
+----------------------------------------------+
1 row in set (0.00 sec)

mysql> select UNIX_TIMESTAMP ('1970-05-15 05:04:30');
+----------------------------------------------+
| unix_timestamp('1970-05-15 05:04:30')        |
+----------------------------------------------+
|                                     11576070 |
+----------------------------------------------+
1 row in set (0.00 sec)

更新于:2020 年 1 月 28 日

283 个浏览量

开启你的 事业

通过完成课程获得认证

开始学习
广告