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'