ในการเปลี่ยนปีในวันที่ MySQL คุณต้องใช้ฟังก์ชัน DATE_FORMAT() กับคำสั่ง UPDATE ไวยากรณ์มีดังนี้
อัปเดต yourTableNameSET yourDateColumnName =DATE_FORMAT(yourDateColumnName ,'yourYearValue-%m-%d');
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง ChangeYear -> ( -> id int ไม่ใช่ null auto_increment, -> ArrivalTime date, -> PRIMARY KEY(id) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.83 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า ChangeYear(ArrivalTime) (date_add(now(),interval -2 year)); ตกลง ตกลง 1 แถวได้รับผลกระทบ 1 คำเตือน (0.20 วินาที) mysql> แทรกลงใน ChangeYear (ArrivalTime) ค่า (' 2012-10-24 '); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า ChangeYear (ArrivalTime) ('2016-3-21'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรก ลงในค่า ChangeYear(ArrivalTime) ('2015-4-24');Query OK, 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> แทรกลงในค่า ChangeYear(ArrivalTime) (curdate()); Query OK, 1 แถวได้รับผลกระทบ (0.20 วินาที )
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้
mysql> เลือก *จาก ChangeYear;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+----+-------------+| id | เวลามาถึง |+----+-------------+| 1 | 2017-01-07 || 2 | 2012-10-24 || 3 | 2016-03-21 || 4 | 2015-04-24 || 5 | 2019-01-07 |+----+--------------------+5 แถวในชุด (0.00 วินาที)นี่คือข้อความค้นหาที่จะอัปเดตเฉพาะปีในคอลัมน์วันที่ ตัวอย่างเช่น ให้เราเปลี่ยนปีเป็นปี 2019 −
mysql> อัปเดต ChangeYear -> ตั้งค่า ArrivalTime =DATE_FORMAT(ArrivalTime,'2019-%m-%d'); ตกลง ตกลง 4 แถวได้รับผลกระทบ (0.12 วินาที) แถวที่ตรงกัน − 5 เปลี่ยน − 4 คำเตือน − 0
ตรวจสอบระเบียนที่อัปเดตทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก ChangeYear;
ต่อไปนี้เป็นผลลัพธ์ที่แสดงปี 2019 ที่อัปเดต แต่วันที่ที่เหลือยังคงเหมือนเดิม -
<ก่อนหน้า>+----+-------------+| id | เวลามาถึง |+----+-------------+| 1 | 2019-01-07 || 2 | 2019-10-24 || 3 | 2019-03-21 || 4 | 2019-04-24 || 5 | 2019-01-07 |+----+--------------------+5 แถวในชุด (0.00 วินาที)