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

สร้างวันที่จากฟิลด์ วัน เดือน ปี ใน MySQL

ใน MySQL คุณสามารถใช้ฟังก์ชัน STR_TO_DATE() ที่มาพร้อมกับระบบเพื่อแปลงข้อความเป็นวันที่ได้ รูปแบบคำสั่งมีดังนี้:

SELECT STR_TO_DATE(CONCAT(yourYearColumName,'-',LPAD(yourMonthColumName,2,'00'),'-',LPAD(yourDayColumName,2,'00')), '%Y-%m-%d') as anyVariableName from yourTableName;

ตัวอย่างการใช้งาน

มาสร้างตารางตัวอย่างเพื่อทดสอบ:

mysql> create table DateCreateDemo (
    -> `Day` varchar(2),
    -> `Month` varchar(2),
    -> `Year` varchar(4)
    -> );

เพิ่มข้อมูลตัวอย่าง:

mysql> insert into DateCreateDemo values('15','12','2018');
mysql> insert into DateCreateDemo values('10','11','2016');
mysql> insert into DateCreateDemo values('12','6','2017');
mysql> insert into DateCreateDemo values('9','8','2019');
mysql> insert into DateCreateDemo values('10','5','2020');

แสดงข้อมูลทั้งหมด:

mysql> select * from DateCreateDemo;

ผลลัพธ์:

+------+-------+------+
| Day  | Month | Year |
+------+-------+------+
| 15   | 12    | 2018 |
| 10   | 11    | 2016 |
| 12   | 6     | 2017 |
| 9    | 8     | 2019 |
| 10   | 5     | 2020 |
+------+-------+------+

สร้างวันที่จาก 3 ฟิลด์

ใช้คำสั่งต่อไปนี้เพื่อรวมวัน เดือน ปี เป็นวันที่สมบูรณ์:

mysql> select STR_TO_DATE(CONCAT(Year,'-',LPAD(Month,2,'00'),'-',LPAD(day,2,'00')), '%Y-%m-%d') as DateDemo from DateCreateDemo;

ผลลัพธ์:

+------------+
| DateDemo   |
+------------+
| 2018-12-15 |
| 2016-11-10 |
| 2017-06-12 |
| 2019-08-09 |
| 2020-05-10 |
+------------+

คำอธิบาย: ฟังก์ชัน LPAD() ใช้เติมศูนย์นำหน้าให้ครบ 2 หลัก (เช่น 6 → 06) ส่วน CONCAT() รวมสตริงเป็นรูปแบบ YYYY-MM-DD ก่อนส่งให้ STR_TO_DATE() แปลงเป็นชนิดข้อมูล DATE