MySQL có một loạt các chức năng khác nhau cho phép chúng ta lấy các phần ngày tháng khác nhau - chẳng hạn như ngày, tháng và năm - từ một ngày.
DATE_FORMAT()
Chức năng
DATE_FORMAT()
hàm này rất tuyệt nếu bạn muốn trả về tất cả các phần ngày tháng trong một trường duy nhất.
Ví dụ:
SELECT DATE_FORMAT('2035-12-19', '%W, %D %M %Y');
Kết quả:
Wednesday, 19th December 2035
Bạn cũng có thể chỉ trả lại tên ngày và tháng ngắn nếu đó là kết quả mong muốn:
SELECT DATE_FORMAT('2035-12-19', '%a, %D %b %Y');
Kết quả:
Wednesday, 19th December 2035
Hoặc bạn có thể trả về số ngày tháng:
SELECT DATE_FORMAT('2035-12-19', '%d/%c/%Y');
Kết quả:
19/12/2035
Bạn cũng có thể trả lại từng phần ngày tháng trong trường riêng của nó, nếu được yêu cầu:
SELECT
DATE_FORMAT('2035-12-19', '%d') AS Day,
DATE_FORMAT('2035-12-19', '%c') AS Month,
DATE_FORMAT('2035-12-19', '%Y') AS Year;
Kết quả:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
Xem danh sách đầy đủ các mã định dạng này để biết tóm tắt đầy đủ về các mã định dạng mà bạn có thể sử dụng để tạo chuỗi định dạng.
DATE_FORMAT()
cũng chấp nhận một đối số ngôn ngữ tùy chọn mà bạn có thể sử dụng để chỉ định ngôn ngữ của tên ngày và tháng. Xem MySQL DATE_FORMAT()
Ví dụ để biết thêm.
EXTRACT()
Chức năng
EXTRACT()
chức năng cho phép bạn trích xuất một đơn vị cụ thể từ ngày. Do đó, bạn có thể sử dụng nó để trích xuất ngày, tháng và năm (cũng như các đơn vị khác) từ ngày.
Ví dụ:
SELECT
EXTRACT(DAY FROM '2035-12-19') AS Day,
EXTRACT(MONTH FROM '2035-12-19') AS Month,
EXTRACT(YEAR FROM '2035-12-19') AS Year;
Kết quả:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
Các chức năng để trả về một đơn vị ngày cụ thể
MySQL cũng có một số hàm cụ thể hơn trả về một đơn vị ngày cụ thể.
Dưới đây là danh sách các hàm trả về ngày, tháng và năm từ một ngày.
DAYNAME()
Chức năng
MySQL có nhiều hơn một chức năng để trả về ngày. Điều này là do có nhiều cách để biểu thị ngày. MySQL cần biết liệu bạn có muốn tên ngày, số ngày trong tuần, ngày trong tháng, ngày trong năm, v.v.
DAYNAME()
hàm trả về tên ngày trong tuần:
SELECT DAYNAME('2035-12-19');
Kết quả:
Wednesday
DAYOFMONTH()
Chức năng
DAYOFMONTH()
hàm trả về ngày của tháng.
Ví dụ:
SELECT DAYOFMONTH('2035-12-19');
Kết quả:
19
DAY()
Chức năng
DAY()
thực sự là một từ đồng nghĩa với DAYOFMONTH()
chức năng.
Ví dụ:
SELECT DAY('2035-12-19');
Kết quả:
19
Như mong đợi, kết quả giống như DAYOFMONTH()
.
DAYOFWEEK()
Chức năng
DAYOFWEEK()
hàm trả về chỉ số ngày trong tuần cho ngày, như được chỉ định bởi tiêu chuẩn ODBC (1
=Chủ nhật, 2
=Thứ Hai,…, 7
=Thứ bảy).
Ví dụ:
SELECT DAYOFWEEK('2035-12-19');
Kết quả:
4
Xem WEEKDAY()
bên dưới để lập chỉ mục khác nhau.
WEEKDAY()
Chức năng
WEEKDAY()
chức năng tương tự như DAYOFWEEK()
trong đó nó trả về chỉ số tuần cho ngày. Sự khác biệt là nó sử dụng cách đánh số chỉ mục khác (0
=Thứ Hai, 1
=Thứ Ba,… 6
=Chủ nhật).
Ví dụ:
SELECT WEEKDAY('2035-12-19');
Kết quả:
2
DAYOFYEAR()
Chức năng
DAYOFYEAR()
hàm trả về ngày trong năm cho ngày, trong phạm vi 1
thành 366
.
Ví dụ:
SELECT DAYOFYEAR('2035-12-19');
Kết quả:
353
MONTH()
Chức năng
MONTH()
hàm trả về tháng trong phạm vi 1
thành 12
cho tháng 1 đến tháng 12, hoặc 0
cho các ngày có phần tháng bằng 0 (chẳng hạn như 0000-00-00
).
Ví dụ:
SELECT MONTH('2035-12-19');
Kết quả:
12
MONTHNAME()
Chức năng
Như tên cho thấy, MONTHNAME()
hàm trả về tên tháng. Ngôn ngữ sử dụng cho tên được kiểm soát bởi giá trị của lc_time_names
biến hệ thống.
Ví dụ:
SELECT MONTHNAME('2035-12-19');
Kết quả:
December
YEAR()
Chức năng
YEAR()
hàm trả về phần năm của ngày.
Ví dụ:
SELECT YEAR('2035-12-19');
Kết quả:
2035