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

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


คุณสามารถใช้ฟังก์ชันในตัว STR_TO_DATE() จาก MySQL ไวยากรณ์มีดังนี้ −

SELECTSTR_TO_DATE(CONCAT(yourYearColumName,'-',LPAD(yourMonthColumName,2,'00'),'-',LPAD(yourDayColumName,2,'00')), '%Y-%m-%d' ) เป็น anyVariableName จาก yourTableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง DateCreateDemo −> ( −> `วัน ' varchar(2), −> `เดือน' varchar(2), −> `Year' varchar(4) −> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.68 วินาที)

แทรกค่าสำหรับทุกฟิลด์โดยใช้คำสั่ง insert แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า DateCreateDemo ('15','12','2018'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.09 วินาที) mysql> แทรกลงในค่า DateCreateDemo ('10','11','2016 '); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.37 วินาที) mysql> แทรกลงในค่า DateCreateDemo ('12', '6', '2017'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DateCreateDemo ( '9','8','2019');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า DateCreateDemo ('10','5','2020'); ตกลง มีผล 1 แถว ( 0.09 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก DateCreateDemo;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------+-------+------+| วัน | เดือน | ปี |+------+-------+------+| 15 | 12 | 2018 || 10 | 11 | 2016 || 12 | 6 | 2017 || 9 | 8 | 2019 || 10 | 5 | 2020 |+------+-------+------+5 แถวในชุด (0.00 วินาที)

สร้างวันที่โดยใช้สามฟิลด์ข้างต้น ซึ่งก็คือ 'วัน' 'เดือน' และ 'ปี' แบบสอบถามมีดังนี้ −

mysql> เลือก −> STR_TO_DATE(CONCAT(Year,'-',LPAD(Month,2,'00'),'-',LPAD(day,2,'00')), '%Y-% m-%d') เป็น DateDemo จาก DateCreateDemo;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-----------+| วันที่สาธิต |+-----------+| 2018-12-15 || 2016-11-10 || 2017-06-12 || 2019-08-09 || 2020-05-10 |+-----------+5 แถวในชุด (0.06 วินาที)