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

เปลี่ยนเฉพาะวันที่โดยไม่สนใจบันทึกเวลาใน MySQL


หากต้องการเปลี่ยนเฉพาะวันที่ ไม่ใช่เวลา ให้ใช้ MySQL INTERVAL และ YEAR เนื่องจากเราจะทำการอัพเดทบันทึก จึงใช้ UPDATE และตั้งค่าใหม่ด้วย INTERVAL

เรามาดูตัวอย่างและสร้างตารางกัน −

mysql> สร้างตาราง DemoTable (DueDate datetime);Query OK, 0 แถวได้รับผลกระทบ (0.56 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable ('2017-08-12 10 :30 :45'); เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า DemoTable ('2015-09-21 12 :00 น. 00'); ตกลงแบบสอบถาม 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable ('2018-12-31 11 :45 :56'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกเข้าไป ค่า DemoTable('2016-01-02 01 :23 :04');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)

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

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------------------+| DueDate |+----------------------+| 2017-08-12 10 :30 :45 || 2015-09-21 12:00 :00 น. || 2018-12-31 11 :45 :56 || 2016-01-02 01 :23 :04 |+----------------------+4 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อเปลี่ยนวันที่ทั้งหมดแต่ไม่ใช่ค่าเวลา -

mysql> อัปเดต DemoTable set DueDate=DueDate+interval 1 ปี; สืบค้นตกลง 4 แถวได้รับผลกระทบ (0.16 วินาที) แถวที่ตรงกัน:4 เปลี่ยน:4 คำเตือน:0

ให้เราตรวจสอบบันทึกตารางอีกครั้ง -

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------------------+| DueDate |+----------------------+| 2018-08-12 10 :30 :45 || 2016-09-21 12:00 :00 น. || 2019-12-31 11 :45 :56 || 2017-01-02 01 :23 :04 |+----------------------+4 แถวในชุด (0.00 วินาที)