MySQL 如何将没有分隔符的数字和字符串解释为日期?

mysqlmysqli database更新于 2025/4/8 15:40:17

如果字符串或数字(即使没有任何分隔符)的格式为  YYYYMMDDHHMMSS 或 YYMMDDHHMMSS,并且与提供的日期一致,则 MySQL 会将该字符串解释为有效日期。

给出了有效日期和无效日期的示例 −

mysql> Select Timestamp(20171022040536);
+---------------------------+
| Timestamp(20171022040536) |
+---------------------------+
| 2017-10-22 04:05:36       |
+---------------------------+
1 row in set (0.00 sec)

mysql> Select Timestamp('20171022040536');
+-----------------------------+
| Timestamp('20171022040536') |
+-----------------------------+
| 2017-10-22 04:05:36         |
+-----------------------------+
1 row in set (0.00 sec)

mysql> Select Timestamp('171022040536');
+---------------------------+
| Timestamp('171022040536') |
+---------------------------+
| 2017-10-22 04:05:36       |
+---------------------------+
1 row in set (0.00 sec)

以上查询显示了有效字符串以及数字的示例,MySQL 可以将其解释为日期值。

mysql> Select Timestamp('20171022048536');
+-----------------------------+
| Timestamp('20171022048536') |
+-----------------------------+
| NULL                        |
+-----------------------------+
1 row in set, 1 warning (0.00 sec)

以上查询是无效字符串的示例。MySQL 返回 NULL,因为字符串在一分钟内具有错误值 (85)。

mysql> Select Timestamp('20171322040536');
+-----------------------------+
| Timestamp('20171322040536') |
+-----------------------------+
| NULL                        |
+-----------------------------+
1 row in set, 1 warning (0.00 sec)

在上述查询中,MySQL 返回 NULL,因为字符串中月份的值有误(13)。


相关文章


有用资源