Trong MySQL, bạn có thể sử dụng TO_DAYS()
hàm để tìm ra bao nhiêu ngày đã trôi qua kể từ ngày 0 cho một ngày cụ thể. Ví dụ:bạn có thể chuyển ngày hôm nay cho hàm này và nó sẽ trả về số ngày đã trôi qua kể từ ngày 0 .
Bài viết này có các ví dụ để minh chứng.
Cú pháp
Cú pháp như sau:
TO_DAYS(date)
Nơi date
là ngày sử dụng trong phép tính.
Ví dụ
Đây là một ví dụ để chứng minh.
SELECT TO_DAYS('1999-12-31');
Kết quả:
+-----------------------+ | TO_DAYS('1999-12-31') | +-----------------------+ | 730484 | +-----------------------+
Lưu ý rằng tài liệu MySQL khuyên rằng hàm này không nhằm mục đích sử dụng với các giá trị trước sự ra đời của lịch Gregory (1582). Điều này là do nó không tính đến những ngày đã mất khi lịch được thay đổi.
Ví dụ 2 - Ngày hiện tại
Đây là một ví dụ sử dụng ngày hiện tại.
SELECT CURDATE(), TO_DAYS(CURDATE());
Kết quả:
+------------+--------------------+ | CURDATE() | TO_DAYS(CURDATE()) | +------------+--------------------+ | 2018-06-26 | 737236 | +------------+--------------------+
Đầu tiên, tôi sử dụng CURDATE()
để trả về ngày hiện tại, sau đó tôi chuyển hàm đó vào TO_DAYS()
hàm để trả về số ngày kể từ ngày 0 .
TO_DAYS () so với FROM_DAYS ()
FROM_DAYS()
hàm đối lập với TO_DAYS()
, mà, đã cho một ngày tháng, trả về số ngày. Dưới đây là một ví dụ để chứng minh mối quan hệ giữa hai chức năng này:
SELECT CURDATE(), TO_DAYS(CURDATE()), FROM_DAYS(TO_DAYS(CURDATE()));
Kết quả:
+------------+--------------------+-------------------------------+ | CURDATE() | TO_DAYS(CURDATE()) | FROM_DAYS(TO_DAYS(CURDATE())) | +------------+--------------------+-------------------------------+ | 2018-06-26 | 737236 | 2018-06-26 | +------------+--------------------+-------------------------------+
Vì vậy, trong ví dụ này, tôi sử dụng TO_DAYS()
để trả về số ngày kể từ ngày hiện tại. Sau đó, tôi sử dụng FROM_DAYS()
để trả về ngày từ giá trị đó (như mong đợi, giải quyết trở lại giá trị ban đầu của CURDATE()
).