Bạn có thể sử dụng DAYOFMONTH()
trong MySQL để trả về ngày trong tháng kể từ một ngày.
Theo “ngày trong tháng”, ý tôi là giá trị từ 1 đến 31 (hoặc 0 đối với các ngày có phần ngày bằng 0), trái ngược với ngày trong tuần, chẳng hạn như Thứ Hai, v.v.
Ví dụ:nếu bạn cung cấp ngày 2018-01-07 , DAYOFMONTH()
hàm sẽ trả về 7 .
Cú pháp
Cú pháp như sau:
DAYOFMONTH(date)
Nơi date
là giá trị ngày mà bạn muốn trả về ngày trong tháng.
Ví dụ
Đây là một ví dụ để chứng minh.
SELECT DAYOFMONTH('2020-06-18') AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | 18 | +--------+
Nếu phần ngày có số 0 đứng đầu, thì số 0 đứng đầu sẽ bị bỏ qua khỏi kết quả. Ví dụ:
SELECT DAYOFMONTH('2020-06-07') AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | 7 | +--------+
Một ví dụ về cơ sở dữ liệu
Dưới đây là một ví dụ về việc trích xuất phần ngày từ một cột khi chạy truy vấn dựa trên cơ sở dữ liệu.
USE sakila; SELECT payment_date AS 'Date/Time', DAYOFMONTH(payment_date) AS 'Day of Month' FROM payment WHERE payment_id = 1;
Kết quả:
+---------------------+--------------+ | Date/Time | Day of Month | +---------------------+--------------+ | 2005-05-25 11:30:37 | 25 | +---------------------+--------------+
Ngày / Giờ hiện tại
Dưới đây là một ví dụ về việc trích xuất phần ngày từ ngày và giờ hiện tại (được trả về bằng cách sử dụng NOW()
chức năng).
SELECT NOW(), DAYOFMONTH(NOW());
Kết quả:
+---------------------+-------------------+ | NOW() | DAYOFMONTH(NOW()) | +---------------------+-------------------+ | 2018-06-25 18:16:00 | 25 | +---------------------+-------------------+
Một cách khác để làm điều này là sử dụng CURDATE()
, chỉ trả về ngày (chứ không trả về thời gian).
SELECT CURDATE(), DAYOFMONTH(CURDATE());
Kết quả:
+------------+-----------------------+ | CURDATE() | DAYOFMONTH(CURDATE()) | +------------+-----------------------+ | 2018-06-25 | 25 | +------------+-----------------------+