MySQL 如何在没有分隔符的情况下将数字和字符串解释为日期?
如果一个字符串或数字,即使没有任何分隔符,以 **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) 错误。
广告