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

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

Trong MariaDB, ADDDATE() 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 trong một khoảng thời gian nhất định.

ADDDATE() cũng có một cú pháp phím tắt cho phép bạn thêm một số ngày nhất định vào ngày.

Cú pháp

ADDDATE() hàm có hai cú pháp.

Cú pháp 1:

 ADDDATE(expr,days) 

Ở đâu expr là ngày và days là số ngày cần thêm.

Cú pháp 2:

 ADDDATE(date,INTERVAL expr unit) 

Nơi days là ngày thay đổi, expr là số tiền cần thêm và unit là đơn vị để thêm (ví dụ:giây, phút, v.v.).

Khi sử dụng cú pháp này, ADDDATE() là từ đồng nghĩa với DATE_ADD() .

Ví dụ - Cú pháp 1

Dưới đây là một ví dụ về việc sử dụng cú pháp đầu tiên:

 SELECT ADDDATE('2021-05-01', 1); 

Kết quả:

 + -------------------------- + | THÊM ('2021-05-01', 1) | + -------------------------- + | 2021-05-02 | + -------------------------- + 

Chúng tôi cũng có thể bao gồm phần thời gian nếu được yêu cầu:

 SELECT ADDDATE('2021-05-01 10:00:00', 1); 

Kết quả:

 + ----------------------------------- + | THÊM ('2021-05-01 10:00:00', 1) | + ------------------------------- ---- + | 2021-05-02 10:00:00 | + ----------------------------------- +  

Dưới đây là hai cách thay thế để làm điều tương tự:

 SELECT 
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 DAY) AS "Result 1",
    '2021-05-01 10:00:00' + INTERVAL 1 DAY AS "Result 2"; 

Kết quả:

 + --------------------- + --------------------- + | Kết quả 1 | Kết quả 2 | + --------------------- + --------------------- + | 2021-05-02 10:00:00 | 2021-05-02 10:00:00 | + --------------------- + ---------------- ----- + 

Ví dụ - Cú pháp 2

Dưới đây là một ví dụ về việc sử dụng cú pháp thứ hai:

 SELECT ADDDATE('2021-05-31 10:00:00', INTERVAL 1 HOUR); 

Kết quả:

 + ---------------------------------------------- --- + | THÊM ('2021-05-31 10:00:00', PHỎNG VẤN 1 GIỜ) | + ----------------------------- -------------------- + | 2021-05-31 11:00:00 | + -------------------------------------- ----------- + 

Cú pháp này cho phép chúng tôi thêm các đơn vị khác vào ngày (tức là không chỉ ngày). Ở đây, tôi đã thêm một giờ vào ngày, nhưng tôi có thể dễ dàng thêm phút, giây, tháng, ngày, năm, v.v. Tiếp tục đọc để biết các ví dụ.

Dưới đây là hai phương pháp thay thế để đạt được kết quả tương tự như ví dụ trên:

 SELECT 
    DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR) AS "Result 1",
    '2021-05-31 10:00:00' + INTERVAL 1 HOUR AS "Result 2"; 

Kết quả:

 + --------------------- + --------------------- + | Kết quả 1 | Kết quả 2 | + --------------------- + --------------------- + | 2021-05-31 11:00:00 | 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 ADDDATE('2021-05-31 10:00:00', INTERVAL -1 HOUR); 

Kết quả:

 + ---------------------------------------------- ---- + | THÊM ('2021-05-31 10:00:00', INTERVAL -1 GIỜ) | + ---------------------------- ---------------------- + | 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 
    ADDDATE('2021-05-01 10:00:00', INTERVAL 1 YEAR) AS YEAR,
    ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MONTH) AS MONTH,
    ADDDATE('2021-05-01 10:00:00', INTERVAL 1 DAY) AS DAY,
    ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) AS HOUR,
    ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MINUTE) AS MINUTE,
    ADDDATE('2021-05-01 10:00:00', INTERVAL 1 SECOND) AS SECOND,
    ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND; 

Kết quả (sử dụng đầu ra dọc):

 NĂM:2022-05-01 10:00:00 THÁNG:2021-06-01 10:00:00 NGÀY:2021-05-02 10:00:00 GIỜ:2021-05-01 11:00:00 PHÚT:2021-05-01 10:01:00 THỨ HAI:2021-05-01 10:00:01 PHÚT GIÂY: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 
    ADDDATE('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
    ADDDATE('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
    ADDDATE('2021-05-01 10:00:00', INTERVAL '1:30' DAY_MINUTE) AS "DAY_MINUTE"; 

Kết quả:

 + --------------------- + --------------------- + - ------------------- + | NĂM_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 ADDDATE(null, INTERVAL 1 YEAR); 

Kết quả:

 + -------------------------------- + | THÊM (rỗng, INTERVAL 1 NĂM) | + -------------------------------- + | NULL | + -------------------------------- + 

Thiếu đối số

Đang gọi ADDDATE() 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 ADDDATE(); 

Kết quả:

 ERROR 1064 (42000):Bạn có lỗi trong cú pháp SQL của mình; kiểm tra hướng dẫn sử dụng tương ứng với phiên bản máy chủ MariaDB của bạn để biết cú pháp phù hợp để sử dụng gần ')' tại dòng 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. 4 Hàm trích xuất Micro giây từ một giá trị thời gian trong MariaDB

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

  3. Cách TIME () hoạt động trong MariaDB

  4. Cách hoạt động của SUBSTRING_INDEX () trong MariaDB

  5. Laravel:Khóa được chỉ định quá dài; độ dài khóa tối đa là 767 byte