如果一个字符串或数字,即使没有任何分隔符,格式为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) 是错误的。