当我尝试将“1965-05-15”这样的日期格式转换为时间戳时,为什么输出为0(零)?


众所周知,我们可以利用MySQL UNIX_TIMESTAMP函数,生成给定日期/日期时间中所包含的秒数。但是,当我们尝试转换“1965-05-15”这样的日期时,它会输出0(零),因为TIMESTAMP的范围在“1970-01-01 00:00:01”到“2038-01-19 08:44:07”之间。因此,超出手戳范围的日期值无法转换,并且始终会输出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次浏览

启动你的 职业

完成课程即可获得认证

立即开始
广告