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

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

Trong MariaDB, DATEDIFF() là một hàm ngày và giờ được tích hợp sẵn trả về sự khác biệt, tính bằng ngày, giữa hai ngày.

Nó chấp nhận hai đối số, cả hai đều là biểu thức ngày tháng hoặc ngày giờ. Sau đó, nó trừ ngày thứ hai từ ngày đầu tiên.

Cú pháp

Cú pháp như sau:

DATEDIFF(expr1,expr2)

Sau đó, nó trả về expr1 - expr2 .

Ví dụ

Đây là một ví dụ:

SELECT DATEDIFF('2030-01-25', '2030-01-20');

Kết quả:

+--------------------------------------+
| DATEDIFF('2030-01-25', '2030-01-20') |
+--------------------------------------+
|                                    5 |
+--------------------------------------+

Đây là một lần nữa, nhưng với các ngày được hoán đổi xung quanh:

SELECT DATEDIFF('2030-01-20', '2030-01-25');

Kết quả:

+--------------------------------------+
| DATEDIFF('2030-01-20', '2030-01-25') |
+--------------------------------------+
|                                   -5 |
+--------------------------------------+

Giá trị ngày giờ

Dưới đây là một ví dụ sử dụng giá trị ngày giờ:

SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59');

Kết quả:

+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') |
+--------------------------------------------------------+
|                                                      5 |
+--------------------------------------------------------+

Đây là một ví dụ khác:

SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59');

Kết quả:

+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') |
+--------------------------------------------------------+
|                                                      0 |
+--------------------------------------------------------+

Trong trường hợp này, mặc dù đã gần cả ngày nhưng nó không ổn lắm và do đó kết quả là 0 .

Ngày hiện tại

Tại đây, chúng tôi chuyển NOW() như đối số thứ hai:

SELECT 
    NOW(),
    DATEDIFF('2030-01-20', NOW());

Kết quả:

+---------------------+-------------------------------+
| NOW()               | DATEDIFF('2030-01-20', NOW()) |
+---------------------+-------------------------------+
| 2021-05-10 10:03:08 |                          3177 |
+---------------------+-------------------------------+

Trong trường hợp này, có 3.177 ngày từ bây giờ đến ngày thứ hai.

Đối số không hợp lệ

Khi truyền bất kỳ đối số không hợp lệ nào, DATEDIFF() trả về null :

SELECT DATEDIFF('Homer', 'Simpson');

Kết quả:

+------------------------------+
| DATEDIFF('Homer', 'Simpson') |
+------------------------------+
|                         NULL |
+------------------------------+

Thiếu đối số

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

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'

Và:

SELECT DATEDIFF('2030-05-21');

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi kết quả truy vấn thành danh sách được phân tách bằng dấu phẩy trong MariaDB

  2. Hàm AVG () trong MariaDB

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

  4. Làm cho các thành phần cơ sở dữ liệu của bạn khả dụng cao (HA) thông qua bộ cân bằng tải

  5. 3 cách để hiển thị đối chiếu cho kết nối của bạn trong MariaDB