Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL คืนค่าอะไรเมื่อสตริงรูปแบบไม่ตรงกับสตริงวันที่ใน STR_TO_DATE()

หากสตริงรูปแบบ (format string) และสตริงวันที่ (date string) ไม่ตรงกัน MySQL จะคืนค่า NULL พร้อมคำเตือน ตัวอย่างด้านล่างช่วยอธิบาย:

mysql> SELECT STR_TO_DATE('20172810', '%Y,%d%m');
+------------------------------------+
| STR_TO_DATE('20172810', '%Y,%d%m') |
+------------------------------------+
| NULL                               |
+------------------------------------+
1 row in set, 1 warning (0.00 sec)

คำสั่งคืน NULL เพราะสตริงรูปแบบมีเครื่องหมายจุลภาค (,) หลัง %Y แต่สตริงวันที่ไม่มีจุลภาคหลัง 2017

mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
Level: Warning
Code: 1411
Message: Incorrect datetime value: '20172810' for function str_to_date
1 row in set (0.00 sec)

เช่นเดียวกัน หากลำดับหน่วยวันที่ในสตริงรูปแบบต่างจากสตริงวันที่ MySQL จะทำงานเหมือนกัน ตัวอย่าง:

mysql> SELECT STR_TO_DATE('20172810', '%d%m%Y');
+-----------------------------------+
| STR_TO_DATE('20172810', '%d%m%Y') |
+-----------------------------------+
| NULL                              |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)

ในคำสั่งด้านบน ลำดับหน่วยในสตริงรูปแบบเปลี่ยนจากลำดับในสตริงวันที่

mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
Level: Warning
Code: 1411
Message: Incorrect datetime value: '20172810' for function str_to_date
1 row in set (0.00 sec)