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

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

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách di chuyển cơ sở dữ liệu WHMCS sang MariaDB Galera Cluster

  2. MariaDB DATABASE () Giải thích

  3. Cách phát hiện xem giá trị có chứa ít nhất một chữ số trong MariaDB hay không

  4. MariaDB JSON_SET () Giải thích

  5. Xử lý các giao dịch lớn với tính năng sao chép trực tuyến và MariaDB 10.4