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

ควรมีกี่หลักในสตริงหรือตัวเลขเพื่อให้สามารถระบุเป็นค่าวันที่โดย MySQL


ขณะพิจารณาปีเป็นค่า 4 หลัก MySQL ต้องใช้ตัวเลขอย่างน้อย 8 หลักในสตริงหรือตัวเลขเพื่อระบุเป็นค่าวันที่ ในกรณีนี้ หากเราต้องการเก็บไมโครวินาทีด้วย ค่านั้นสามารถมีได้สูงสุด 20 หลัก

mysql> Select TIMESTAMP('20171022040536.100000');
+-----------------------------------+
| TIMESTAMP('20171022040536100000') |
+-----------------------------------+
| 2017-10-22 04:05:36.100000        |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)

ข้อความค้นหาด้านบนใช้สตริง 20 หลักสำหรับค่า TIMESTAMP 6 หลักสุดท้ายเป็นไมโครวินาที

mysql> Select TIMESTAMP(20171022);
+---------------------+
| TIMESTAMP(20171022) |
+---------------------+
| 2017-10-22 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

ข้อความค้นหาด้านบนใช้สตริง 8 หลักสำหรับค่า TIMESTAMP

mysql> Select TIMESTAMP(201710);
+-------------------+
| TIMESTAMP(201710) |
+-------------------+
| NULL              |
+-------------------+
1 row in set, 1 warning (0.00 sec)

ข้อความค้นหาด้านบนคืนค่า NULL เนื่องจากตัวเลขน้อยกว่า 8

ในทางตรงกันข้าม ในขณะที่พิจารณาปีเป็นค่า 2 หลัก MySQL ต้องใช้ตัวเลขอย่างน้อย 6 หลักในสตริงหรือตัวเลขเพื่อระบุเป็นค่าวันที่ ในกรณีนี้ หากเราต้องการเก็บไมโครวินาทีด้วย ค่านั้นสามารถมีได้สูงสุด 18 หลัก

mysql> Select TIMESTAMP(171022);
+---------------------+
| TIMESTAMP(171022)   |
+---------------------+
| 2017-10-22 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

ข้อความค้นหาด้านบนใช้สตริง 6 หลักสำหรับค่า TIMESTAMP

mysql> Select TIMESTAMP('171022040536.200000');
+----------------------------------+
| TIMESTAMP('171022040536.200000') |
+----------------------------------+
| 2017-10-22 04:05:36.200000       |
+----------------------------------+
1 row in set (0.00 sec)

ข้อความค้นหาด้านบนใช้สตริง 18 หลักสำหรับค่า TIMESTAMP ตัวเลข 6 หลักสุดท้ายหลังจุด (.) คือไมโครวินาที

mysql> Select TIMESTAMP(1710);
+-----------------+
| TIMESTAMP(1710) |
+-----------------+
| NULL            |
+-----------------+
1 row in set, 1 warning (0.00 sec)

ข้อความค้นหาด้านบนคืนค่า NULL เนื่องจากตัวเลขน้อยกว่า 6