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

แปลง INT รูปแบบ yyyymmdd เป็น DATE ใน MySQL ด้วย DATE()

เมื่อคอลัมน์เก็บวันที่เป็นตัวเลข INT รูปแบบ yyyymmdd (เช่น 20190108) สามารถแปลงเป็น DATE ได้โดยตรงด้วยฟังก์ชัน DATE() ใน MySQL

ตัวอย่างการสร้างตาราง

mysql> create table DemoTable ( 
    Number int ); 
Query OK, 0 rows affected (0.48 sec)

เพิ่มข้อมูล INT รูปแบบ yyyymmdd

mysql> insert into DemoTable values(20190108); 
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(20161231); 
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values(20170411); 
Query OK, 1 row affected (0.09 sec)

แสดงข้อมูลก่อนแปลง

mysql> select * from DemoTable;
+----------+
| Number   |
+----------+
| 20190108 |
| 20161231 |
| 20170411 |
+----------+
3 rows in set (0.00 sec)

คำสั่งแปลง INT เป็น DATE

mysql> select date(Number) from DemoTable;

ผลลัพธ์

+--------------+
| date(Number) |
+--------------+
| 2019-01-08   |
| 2016-12-31   |
| 2017-04-11   |
+--------------+
3 rows in set (0.00 sec)

คำอธิบาย: MySQL รองรับการแปลงตัวเลข 8 หลัก (YYYYMMDD) เป็น DATE ได้โดยอัตโนมัติเมื่อใช้ฟังก์ชัน DATE() หรือ CAST(Number AS DATE) เหมาะสำหรับข้อมูลที่นำเข้ามาจากระบบเก่า (Legacy) ที่เก็บวันที่เป็นตัวเลข

ข้อจำกัด: ตัวเลขต้องเป็นรูปแบบ YYYYMMDD อย่างแม่นยำ 8 หลัก หากเป็น 6 หลัก (YYMMDD) ต้องแปลงด้วยวิธีอื่น