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

MySQL ตีความตัวเลข/สตริงไม่มีตัวคั่น เป็นวันที่อย่างไร?

หากสตริงหรือตัวเลขในรูปแบบ YYYYMMDDHHMMSS หรือ YYMMDDHHMMSS แสดงความหมายเป็นวันที่ได้ MySQL จะตีความเป็นวันที่ถูกต้อง:

ตัวอย่างวันที่ถูกต้อง

mysql> SELECT TIMESTAMP(20171022040536);
+---------------------------+
| TIMESTAMP(20171022040536) |
+---------------------------+
| 2017-10-22 04:05:36       |
+---------------------------+

mysql> SELECT TIMESTAMP('20171022040536');
+-----------------------------+
| TIMESTAMP('20171022040536') |
+-----------------------------+
| 2017-10-22 04:05:36         |
+-----------------------------+

mysql> SELECT TIMESTAMP('171022040536');
+---------------------------+
| TIMESTAMP('171022040536') |
+---------------------------+
| 2017-10-22 04:05:36       |
+---------------------------+

ตัวอย่างวันที่ไม่ถูกต้อง

mysql> SELECT TIMESTAMP('20171022048536');  -- นาที 85 ผิด
+-----------------------------+
| TIMESTAMP('20171022048536') |
+-----------------------------+
| NULL                        |
+-----------------------------+
1 row in set, 1 warning

mysql> SELECT TIMESTAMP('20171322040536');  -- เดือน 13 ผิด
+-----------------------------+
| TIMESTAMP('20171322040536') |
+-----------------------------+
| NULL                        |
+-----------------------------+
1 row in set, 1 warning

ค่าที่ไม่สมเหตุสมผล (เดือน>12, นาที>59) จะได้ NULL พร้อม warning