Bạn có thể sử dụng MONTH()
trong MySQL để trả về tháng kể từ một ngày.
Trong ngữ cảnh này, tháng là giá trị từ 1 đến 12 (hoặc 0 đối với các ngày có phần tháng bằng 0).
Ví dụ:nếu bạn cung cấp ngày 2018-10-07 , MONTH()
hàm sẽ trả về 10 .
Cú pháp
Cú pháp như sau:
MONTH(date)
Nơi date
là giá trị ngày tháng mà bạn muốn trả về từ đó.
Ví dụ
Đây là một ví dụ để chứng minh.
SELECT MONTH('2020-12-18') AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | 12 | +--------+
Nếu phần tháng có số 0 đứng đầu, thì số 0 đứng đầu sẽ bị bỏ qua khỏi kết quả. Ví dụ:
SELECT MONTH('2020-07-18') AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | 7 | +--------+
Một ví dụ về cơ sở dữ liệu
Trong ví dụ này, tôi trích xuất phần tháng từ một cột khi chạy truy vấn đối với cơ sở dữ liệu.
USE sakila; SELECT payment_date AS 'Date/Time', MONTH(payment_date) AS 'Month' FROM payment WHERE payment_id = 1;
Kết quả:
+---------------------+-------+ | Date/Time | Month | +---------------------+-------+ | 2005-05-25 11:30:37 | 5 | +---------------------+-------+
Ngày / Giờ hiện tại
Dưới đây là một ví dụ về việc trích xuất phần tháng 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(), MONTH(NOW());
Kết quả:
+---------------------+--------------+ | NOW() | MONTH(NOW()) | +---------------------+--------------+ | 2018-06-29 14:44:38 | 6 | +---------------------+--------------+
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(), MONTH(CURDATE());
Kết quả:
+------------+------------------+ | CURDATE() | MONTH(CURDATE()) | +------------+------------------+ | 2018-06-29 | 6 | +------------+------------------+