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

MySQL ใดส่งคืนหากสตริงรูปแบบที่ระบุไม่เป็นไปตามสตริงวันที่ที่ส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน STR_TO_DATE ()


หากสตริงรูปแบบที่ระบุและสตริงวันที่ไม่ตรงกัน 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)