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

如果提供日期,则即使格式为 YYYYMMDDHHMMSSYYMMDDHHMMSS的字符串或数字(即使没有任何定界符)也很有意义,然后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)错误。

猜你喜欢