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

เพิ่มวินาทีในคอลัมน์ DATETIME ด้วย DATE_ADD ใน MySQL

การเตรียมข้อมูล

mysql> CREATE TABLE DemoTable1867 (ArrivalTime DATETIME);

mysql> INSERT INTO DemoTable1867 VALUES('2019-10-12 12:34:45');
mysql> INSERT INTO DemoTable1867 VALUES('2019-10-12 10:04:15');
mysql> INSERT INTO DemoTable1867 VALUES('2019-10-12 11:00:23');

เพิ่ม 5 วินาที

mysql> SELECT DATE_ADD(ArrivalTime, INTERVAL 5 SECOND) FROM DemoTable1867;

ผลลัพธ์:

+------------------------------------------+
| date_add(ArrivalTime, interval 5 second) |
+------------------------------------------+
| 2019-10-12 12:34:50                      |
| 2019-10-12 10:04:20                      |
| 2019-10-12 11:00:28                      |
+------------------------------------------+

DATE_ADD vs ADDTIME

หน่วย INTERVAL ที่ใช้ได้

SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR
MICROSECOND
DAY_HOUR, DAY_MINUTE, DAY_SECOND    -- รวมวัน+เวลา
HOUR_MINUTE, HOUR_SECOND            -- รวมชั่วโมง+นาที/วินาที
MINUTE_SECOND                       -- รวมนาที+วินาที
YEAR_MONTH                          -- ปี+เดือน

ตัวอย่างเพิ่มเติม

-- เพิ่ม 1 นาที 30 วินาที
DATE_ADD(ArrivalTime, INTERVAL 1 MINUTE 30 SECOND)   -- หรือ INTERVAL 90 SECOND
DATE_ADD(ArrivalTime, INTERVAL '1:30' MINUTE_SECOND)

-- เพิ่ม 1 ชั่วโมง
DATE_ADD(ArrivalTime, INTERVAL 1 HOUR)

-- ลบ 10 วินาที
DATE_SUB(ArrivalTime, INTERVAL 10 SECOND)
-- หรือ
DATE_ADD(ArrivalTime, INTERVAL -10 SECOND)

การอัปเดตข้อมูลจริง

UPDATE DemoTable1867 
SET ArrivalTime = DATE_ADD(ArrivalTime, INTERVAL 5 SECOND);
ฟังก์ชันเหมาะสำหรับรองรับวันที่ข้ามวัน
DATE_ADD(dt, INTERVAL n UNIT)วันที่/เวลา ทุกหน่วยใช่ (Auto rollover)
ADDTIME(dt, time)เวลา (Time component)ใช่ (ใน MySQL 5.6+)