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)。

更新於: 2020 年 1 月 29 日

193 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.