Trong MariaDB, DATE_ADD()
là một hàm ngày và giờ được tích hợp sẵn để thực hiện số học ngày tháng.
Nó cho phép bạn thay đổi ngày bằng cách chỉ định ngày, đơn vị cần thêm và số lượng cần thêm. Bạn có thể chuyển một số tiền âm nếu bạn cần trừ ngày theo một khoảng thời gian nhất định.
Cú pháp
Cú pháp như sau:
DATE_ADD(date,INTERVAL expr unit)
Nơi date
là ngày thay đổi, expr
là số tiền cần thêm và unit
là đơn vị ngày / giờ để thêm (ví dụ:giây, phút, v.v.).
Ví dụ
Đây là một ví dụ cơ bản:
SELECT DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR);
Kết quả:
+--------------------------------------------------+ | DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-31 11:00:00 | +--------------------------------------------------+
Điều này giống như làm như sau:
SELECT '2021-05-31 10:00:00' + INTERVAL 1 HOUR;
Kết quả:
+-----------------------------------------+ | '2021-05-31 10:00:00' + INTERVAL 1 HOUR | +-----------------------------------------+ | 2021-05-31 11:00:00 | +-----------------------------------------+
Khoảng thời gian phủ định
Cung cấp một khoảng âm sẽ trừ đi số tiền đó từ ngày.
Ví dụ:
SELECT DATE_ADD('2021-05-31 10:00:00', INTERVAL -1 HOUR);
Kết quả:
+---------------------------------------------------+ | DATE_ADD('2021-05-31 10:00:00', INTERVAL -1 HOUR) | +---------------------------------------------------+ | 2021-05-31 09:00:00 | +---------------------------------------------------+
Các đơn vị khác
Dưới đây là một ví dụ thêm khoảng thời gian là 1 vào các đơn vị ngày và giờ khác nhau:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 YEAR) AS YEAR,
DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 MONTH) AS MONTH,
DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 DAY) AS DAY,
DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR) AS HOUR,
DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 MINUTE) AS MINUTE,
DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 SECOND) AS SECOND,
DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND;
Kết quả (sử dụng đầu ra dọc):
YEAR: 2022-05-01 10:00:00 MONTH: 2021-06-01 10:00:00 DAY: 2021-05-02 10:00:00 HOUR: 2021-05-01 11:00:00 MINUTE: 2021-05-01 10:01:00 SECOND: 2021-05-01 10:00:01 MICROSECOND: 2021-05-01 10:00:00.000001
Đơn vị tổng hợp
Dưới đây là một ví dụ sử dụng các đơn vị tổng hợp:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' DAY_MINUTE) AS "DAY_MINUTE";
Kết quả:
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2022-07-01 10:00:00 | 2021-05-01 11:25:35 | 2021-05-01 11:30:00 | +---------------------+---------------------+---------------------+
Ngày trống
Chuyển null
cho ngày trả về null
:
SELECT DATE_ADD(null, INTERVAL 1 YEAR);
Kết quả:
+---------------------------------+ | DATE_ADD(null, INTERVAL 1 YEAR) | +---------------------------------+ | NULL | +---------------------------------+
Thiếu đối số
Đang gọi DATE_ADD()
với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào dẫn đến lỗi:
SELECT DATE_ADD();
Kết quả:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1