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

MySQL: เพิ่ม 30 วันให้กับวันที่ในคอลัมน์

การใช้ INTERVAL เพื่อบวกวันที่

MySQL รองรับการคำนวณวันที่ด้วยคีย์เวิร์ด INTERVAL รูปแบบ: date + INTERVAL n UNIT

หน่วยเวลาที่ใช้ได้

  • DAY, WEEK, MONTH, YEAR
  • HOUR, MINUTE, SECOND
  • QUARTER (ไตรมาส)

ตัวอย่าง: เพิ่ม 30 วันให้ ArrivalDate

mysql> create table DemoTable814(ArrivalDate date);
Query OK, 0 rows affected (0.58 sec)
mysql> insert into DemoTable814 values('2018-12-02');
mysql> insert into DemoTable814 values('2017-03-12');
mysql> insert into DemoTable814 values('2019-12-23');
mysql> insert into DemoTable814 values('2016-06-01');
mysql> insert into DemoTable814 values('2019-08-03');

คำสั่ง SELECT

mysql> select ArrivalDate, ArrivalDate + INTERVAL 30 DAY as NewDate from DemoTable814;

ผลลัพธ์:

+-------------+------------+
| ArrivalDate | NewDate    |
+-------------+------------+
| 2018-12-02  | 2019-01-01 |
| 2017-03-12  | 2017-04-11 |
| 2019-12-23  | 2020-01-22 |
| 2016-06-01  | 2016-07-01 |
| 2019-08-03  | 2019-09-02 |
+-------------+------------+

การ UPDATE จริง (เปลี่ยนข้อมูลในตาราง)

mysql> update DemoTable814 set ArrivalDate = ArrivalDate + INTERVAL 30 DAY;

ฟังก์ชัน DATE_ADD() ทางเลือก

SELECT DATE_ADD(ArrivalDate, INTERVAL 30 DAY) FROM DemoTable814;
UPDATE DemoTable814 SET ArrivalDate = DATE_ADD(ArrivalDate, INTERVAL 30 DAY);

สรุป

ใช้ + INTERVAL n UNIT หรือ DATE_ADD() สำหรับคำนวณวันที่ รองรับหน่วยหลากหลาย และจัดการปีอธิกสุรทิน/เดือนที่มีวันที่ต่างกันอัตโนมัติ