MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách ADD_MONTHS () hoạt động trong MariaDB

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 cách trả lại mã ASCII cho một ký tự đã cho trong MariaDB

  2. Cách thêm AM / PM vào giá trị thời gian hoặc ngày giờ trong MariaDB

  3. So sánh MariaDB Enterprise Backup với ClusterControl Backup Management

  4. Mở khóa các lợi ích của Chương trình liên kết được chứng nhận của MariaDB

  5. Chuyển sang MariaDB Backup