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

MySQL: เพิ่ม 10 นาทีให้กับ DATETIME ด้วย DATE_ADD()

การบวกเวลา (Interval) ให้กับ DATETIME ด้วย DATE_ADD()

ฟังก์ชัน DATE_ADD(date, INTERVAL expr unit) ใช้บวกช่วงเวลา (นาที, ชั่วโมง, วัน, เดือน, ปี) เข้ากับค่า DATE/DATETIME/TIMESTAMP ได้

ไวยากรณ์ (Syntax)

SELECT DATE_ADD(yourColumnName, INTERVAL 10 MINUTE) FROM yourTableName;

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่ม datetime:

mysql> CREATE TABLE add10MinuteDemo (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> DelayDatetime DATETIME
    -> );
Query OK, 0 rows affected (0.83 sec)

mysql> INSERT INTO add10MinuteDemo(DelayDatetime) VALUES('2019-01-23 12:45:56');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO add10MinuteDemo(DelayDatetime) VALUES('2019-03-25 10:30:23');
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO add10MinuteDemo(DelayDatetime) VALUES('2019-04-21 04:04:30');
Query OK, 1 row affected (0.19 sec)

ข้อมูลต้นฉบับ:

mysql> SELECT * FROM add10MinuteDemo;
+----+---------------------+
| Id | DelayDatetime       |
+----+---------------------+
| 1  | 2019-01-23 12:45:56 |
| 2  | 2019-03-25 10:30:23 |
| 3  | 2019-04-21 04:04:30 |
+----+---------------------+
3 rows in set (0.00 sec)

บวก 10 นาที:

mysql> SELECT DATE_ADD(DelayDatetime, INTERVAL 10 MINUTE) FROM add10MinuteDemo;
+--------------------------------------------+
| DATE_ADD(DelayDatetime, INTERVAL 10 MINUTE) |
+--------------------------------------------+
| 2019-01-23 12:55:56                        |
| 2019-03-25 10:40:23                        |
| 2019-04-21 04:14:30                        |
+--------------------------------------------+
3 rows in set (0.00 sec)

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

Unitตัวอย่าง
MICROSECONDINTERVAL 500 MICROSECOND
SECONDINTERVAL 30 SECOND
MINUTEINTERVAL 10 MINUTE
HOURINTERVAL 2 HOUR
DAYINTERVAL 5 DAY
WEEKINTERVAL 1 WEEK
MONTHINTERVAL 3 MONTH
QUARTERINTERVAL 2 QUARTER
YEARINTERVAL 1 YEAR

ฟังก์ชันคู่: DATE_SUB()

-- ลบ 10 นาที
SELECT DATE_SUB(DelayDatetime, INTERVAL 10 MINUTE) FROM add10MinuteDemo;

-- หรือใช้ DATE_ADD กับค่าลบ
SELECT DATE_ADD(DelayDatetime, INTERVAL -10 MINUTE) FROM add10MinuteDemo;

ทั้งสองให้ผลลัพธ์เท่ากัน เลือกใช้ตามความชอบ