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

MySQL จะตีความตัวเลขและสตริงได้อย่างไรโดยไม่มีตัวคั่นเป็นวันที่


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

ตัวอย่างจะได้รับสำหรับวันที่ที่ถูกต้องและไม่ถูกต้อง -

mysql> เลือกการประทับเวลา (20171022040536);+--------------------------+| Timestamp(20171022040536) |+--------------------------+| 2017-10-22 04:05:36 |+--------------------------- +1 แถวในชุด (0.00 วินาที)mysql> เลือก Timestamp('20171022040536');+------------------------------------------+| Timestamp('20171022040536') |+------------------------------------------+| 2017-10-22 04:05:36 |+----------------------------- +1 แถวในชุด (0.00 วินาที) mysql> เลือก Timestamp('171022040536');+--------------------------+| Timestamp('171022040536') |+--------------------------+| 2017-10-22 04:05:36 |+--------------------------- +1 แถวในชุด (0.00 วินาที) 

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

mysql> เลือก Timestamp('20171022048536');+-----------------------------+| Timestamp('20171022048536') |+------------------------------------------+| NULL |+-----------------------------+1 แถวในชุด, 1 คำเตือน (0.00 วินาที)

ข้อความค้นหาด้านบนคือตัวอย่างสำหรับสตริงที่ไม่ถูกต้อง MySQL ส่งคืนค่า NULL เนื่องจากสตริงมีค่าที่ไม่ถูกต้อง (85) เป็นเวลาหนึ่งนาที

mysql> เลือก Timestamp('20171322040536');+-----------------------------+| Timestamp('20171322040536') |+------------------------------------------+| NULL |+-----------------------------+1 แถวในชุด, 1 คำเตือน (0.00 วินาที)

ในการสืบค้นด้านบน MySQL จะคืนค่า NULL เนื่องจากสตริงมีค่าที่ไม่ถูกต้อง (13) เป็นเวลาหนึ่งเดือน