如果提供日期,则即使格式为 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)错误。