Trong MariaDB, TO_DAYS()
là một hàm ngày và giờ được tích hợp sẵn trả về số ngày kể từ đầu lịch chuẩn (0000-00-00), dựa trên một ngày nhất định.
Bạn chuyển ngày cho hàm khi bạn gọi nó.
TO_DAYS()
hàm là nghịch đảo của FROM_DAYS()
chức năng.
Cú pháp
Cú pháp như sau:
TO_DAYS(date)
Nơi date
là ngày trả về số ngày kể từ 0000-00-00.
Ví dụ
Đây là một ví dụ:
SELECT TO_DAYS('2028-12-31');
Kết quả:
+-----------------------+ | TO_DAYS('2028-12-31') | +-----------------------+ | 741077 | +-----------------------+
Dựa trên Ngày hôm nay
Đây là một ví dụ sử dụng NOW()
để trả về số ngày trong khoảng từ 0000-00-00 đến hôm nay:
SELECT
NOW(),
TO_DAYS(NOW());
Kết quả:
+---------------------+----------------+ | NOW() | TO_DAYS(NOW()) | +---------------------+----------------+ | 2021-05-23 09:56:45 | 738298 | +---------------------+----------------+
Đối số không hợp lệ
Khi truyền một đối số không hợp lệ, TO_DAYS()
trả về NULL
với một cảnh báo:
SELECT TO_DAYS('Oops!');
Kết quả:
+------------------+ | TO_DAYS('Oops!') | +------------------+ | NULL | +------------------+ 1 row in set, 1 warning (0.000 sec)
Kiểm tra cảnh báo:
SHOW WARNINGS;
Kết quả:
+---------+------+-----------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------+ | Warning | 1292 | Incorrect datetime value: 'Oops!' | +---------+------+-----------------------------------+
Thiếu đối số
Đang gọi TO_DAYS()
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 TO_DAYS();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'
Và một ví dụ khác:
SELECT TO_DAYS( '2028-12-31', '2029-12-31' );
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'
Lịch tiền Gregorian
TO_DAYS()
chức năng không được thiết kế để sử dụng với các ngày trước khi lịch Gregorian ra đời (được giới thiệu vào tháng 10 năm 1582). Kết quả sẽ không đáng tin cậy vì nó không tính đến những ngày đã mất khi lịch thay đổi từ lịch Julian.