Khi sử dụng MySQL, bạn có thể sử dụng LAST_DAY()
hàm để trả về ngày cuối cùng của một tháng nhất định.
Bạn có thể cung cấp ngày hiện tại hoặc bạn có thể cung cấp một ngày cụ thể khác (ví dụ:ngày từ một cột trong cơ sở dữ liệu) và LAST_DAY()
sẽ trả về ngày cuối cùng của tháng cho ngày đó.
Cú pháp
Cú pháp như sau:
LAST_DAY(date)
Nơi date
là ngày bạn muốn trả lại ngày cuối cùng.
Ví dụ 1 - Cách sử dụng cơ bản
Dưới đây là một ví dụ để chứng minh cách thức hoạt động của nó.
SELECT LAST_DAY('2021-01-01');
Kết quả:
+------------------------+ | LAST_DAY('2021-01-01') | +------------------------+ | 2021-01-31 | +------------------------+
Vì vậy, nó lấy ngày mà chúng tôi cung cấp làm đối số, rồi trả về ngày cuối cùng của tháng đó.
Ví dụ 2 - Năm nhuận
Như bạn có thể mong đợi, nó đủ thông minh để có thể đối phó với những năm nhuận.
Năm không nhuận
SELECT LAST_DAY('2021-02-01');
Kết quả:
+------------------------+ | LAST_DAY('2021-02-01') | +------------------------+ | 2021-02-28 | +------------------------+
Năm nhuận
SELECT LAST_DAY('2020-02-01');
Kết quả:
+------------------------+ | LAST_DAY('2020-02-01') | +------------------------+ | 2020-02-29 | +------------------------+
Ví dụ 3 - Giá trị ngày giờ
Bạn cũng có thể cung cấp ngày giờ giá trị.
SELECT LAST_DAY('2021-02-01 23:59:15');
Kết quả:
+---------------------------------+ | LAST_DAY('2021-02-01 23:59:15') | +---------------------------------+ | 2021-02-28 | +---------------------------------+
Ví dụ 4 - Giá trị Không hợp lệ
Nếu bạn cung cấp ngày không hợp lệ, giá trị null sẽ được trả về.
SELECT LAST_DAY('2021-02-32');
Kết quả:
+------------------------+ | LAST_DAY('2021-02-32') | +------------------------+ | NULL | +------------------------+ 1 row in set, 1 warning (0.00 sec)
Ví dụ 5 - Ví dụ về Cơ sở dữ liệu
Dưới đây là một ví dụ về hàm này đang được sử dụng trong truy vấn cơ sở dữ liệu.
USE sakila; SELECT payment_date AS 'Date/Time', LAST_DAY(payment_date) AS 'Last day of month' FROM payment WHERE payment_id = 1;
Kết quả:
+---------------------+-------------------+ | Date/Time | Last day of month | +---------------------+-------------------+ | 2005-05-25 11:30:37 | 2005-05-31 | +---------------------+-------------------+