Trong MariaDB, ADD_MONTHS()
là một hàm ngày và giờ được tích hợp sẵn để thêm một số tháng nhất định vào một ngày và trả về kết quả.
Ngày có thể là giá trị ngày tháng, ngày tháng năm hoặc dấu thời gian.
Chức năng này đã được giới thiệu trong MariaDB 10.6.1 để nâng cao khả năng tương thích với Oracle. Có ít nhất 6 cách khác để thêm tháng vào một ngày trong MariaDB.
Cú pháp
Cú pháp như sau:
ADD_MONTHS(date, months)
Nơi date
là ngày và months
là số tháng cần thêm vào đó.
Ví dụ
Đây là một ví dụ:
SELECT ADD_MONTHS('2020-01-01', 3);
Kết quả:
+-----------------------------+ | ADD_MONTHS('2020-01-01', 3) | +-----------------------------+ | 2020-04-01 | +-----------------------------+
Trừ các tháng
Để trừ các tháng cho một ngày, hãy sử dụng giá trị âm cho đối số thứ hai.
Ví dụ:
SELECT ADD_MONTHS('2020-01-01', -3);
Kết quả:
+------------------------------+ | ADD_MONTHS('2020-01-01', -3) | +------------------------------+ | 2019-10-01 | +------------------------------+
Ngữ cảnh dạng số
Ngày có thể được cung cấp ở dạng số nếu được yêu cầu:
SELECT ADD_MONTHS(20200101, 3);
Kết quả:
+-------------------------+ | ADD_MONTHS(20200101, 3) | +-------------------------+ | 2020-04-01 | +-------------------------+
Ngày không hợp lệ
Nếu ngày không hợp lệ, ADD_MONTHS()
trả về null
với một cảnh báo:
SELECT ADD_MONTHS('2020-01-51', 3);
Kết quả:
+-----------------------------+ | ADD_MONTHS('2020-01-51', 3) | +-----------------------------+ | NULL | +-----------------------------+ 1 row in set, 1 warning (0.003 sec)
Hãy kiểm tra cảnh báo:
SHOW WARNINGS;
Kết quả:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
Đối số rỗng
ADD_MONTHS()
trả về null
nếu bất kỳ đối số nào là null
:
SELECT ADD_MONTHS('2020-01-01', null);
Kết quả:
+--------------------------------+ | ADD_MONTHS('2020-01-01', null) | +--------------------------------+ | NULL | +--------------------------------+
Số lượng đối số không hợp lệ
Việc chuyển một số lượng đối số không hợp lệ dẫn đến lỗi:
SELECT ADD_MONTHS(3);
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