Bài viết này chứa các ví dụ về DATE_FORMAT()
trong MySQL.
DATE_FORMAT()
chức năng cho phép bạn trả về một ngày ở một định dạng được chỉ định. Ví dụ:bạn có thể sử dụng nó để trả về 2020-06-18 as Thứ Năm, tháng 6 năm 2020 hoặc bất kỳ định dạng nào khác mà bạn yêu cầu.
Cú pháp
Cú pháp như sau:
DATE_FORMAT(date,format)
Nơi date
là ngày bạn muốn định dạng và format
chỉ định cách nó nên được định dạng.
Để biết danh sách các chỉ định định dạng hợp lệ, hãy xem bảng ở cuối bài viết này. Giá trị định dạng phải bắt đầu bằng dấu phần trăm (%
).
Ví dụ
Đây là một ví dụ để chứng minh.
SELECT DATE_FORMAT('2020-06-18', '%W, %M %Y') AS 'Result';
Kết quả:
+---------------------+ | Result | +---------------------+ | Thursday, June 2020 | +---------------------+
Tên ngày và tháng ngắn / viết tắt
Dưới đây là một ví dụ định dạng kết quả thành tên ngày và tháng ngắn.
SELECT DATE_FORMAT('2020-06-18', '%a, %b %Y') AS 'Result';
Kết quả:
+---------------+ | Result | +---------------+ | Thu, Jun 2020 | +---------------+
Một ví dụ về cơ sở dữ liệu
Dưới đây là một ví dụ trong đó chúng tôi định dạng giá trị trả về từ cột cơ sở dữ liệu được lưu trữ dưới dạng giá trị ngày giờ.
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%W, %M %Y') AS 'Date' FROM payment WHERE payment_id = 1;
Kết quả:
+---------------------+---------------------+ | Date/Time | Date | +---------------------+---------------------+ | 2005-05-25 11:30:37 | Wednesday, May 2005 | +---------------------+---------------------+
Định dạng thời gian
Bạn cũng có thể sử dụng DATE_FORMAT()
để định dạng thành phần thời gian của ngày giờ giá trị. Ví dụ:
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i:%s') AS 'Time' FROM payment WHERE payment_id = 1;
Kết quả:
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30:37 | +---------------------+----------+
Đây là một ví dụ khác mà tôi thêm AM / PM người chỉ định:
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i %p') AS 'Time' FROM payment WHERE payment_id = 1;
Kết quả:
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30 AM | +---------------------+----------+
Các thông số kỹ thuật có sẵn
Các thông số sau có thể được sử dụng để chỉ định định dạng trả về. Giá trị định dạng phải bắt đầu bằng dấu phần trăm (%
).
Specifier | Mô tả |
---|---|
%a | Tên ngày trong tuần viết tắt (Sun .. Sat ) |
%b | Tên tháng viết tắt (Jan .. Dec ) |
%c | Tháng, số (0 .. 12 ) |
%D | Ngày trong tháng với hậu tố tiếng Anh (0th , 1st , 2nd , 3rd ,…) |
%d | Ngày trong tháng, số (00 .. 31 ) |
%e | Ngày trong tháng, dạng số (0 .. 31 ) |
%f | Microseconds (000000 .. 999999 ) |
%H | Giờ (00 .. 23 ) |
%h | Giờ (01 .. 12 ) |
%I | Giờ (01 .. 12 ) |
%i | Phút, số (00 .. 59 ) |
%j | Ngày trong năm (001 .. 366 ) |
%k | Giờ (0 .. 23 ) |
%l | Giờ (1 .. 12 ) |
%M | Tên tháng (January .. Dec ) |
%m | Tháng, số (00 .. 12 ) |
%p | AM hoặc PM |
%r | Thời gian, 12 giờ (hh:mm:ss theo sau là AM hoặc PM ) |
%S | Giây (00 .. 59 ) |
%s | Giây (00 .. 59 ) |
%T | Thời gian, 24 giờ (hh:mm:ss ) |
%U | Tuần (00 .. 53 ), trong đó Chủ nhật là ngày đầu tiên trong tuần; WEEK() chế độ 0 |
%u | Tuần (00 .. 53 ), trong đó Thứ Hai là ngày đầu tiên trong tuần; WEEK() chế độ 1 |
%V | Tuần (01 .. 53 ), trong đó Chủ nhật là ngày đầu tiên trong tuần; WEEK() chế độ 2; được sử dụng với %X |
%v | Tuần (01 .. 53 ), trong đó Thứ Hai là ngày đầu tiên trong tuần; WEEK() chế độ 3; được sử dụng với %x |
%W | Tên ngày trong tuần (Sunday .. Saturday ) |
%w | Ngày trong tuần (0 =Chủ nhật .. 6 =Thứ Bảy) |
%X | Năm cho tuần trong đó Chủ nhật là ngày đầu tiên của tuần, là số, bốn chữ số; được sử dụng với %V |
%x | Năm trong tuần, trong đó Thứ Hai là ngày đầu tiên của tuần, là số, bốn chữ số; được sử dụng với %v |
%Y | Năm, số, bốn chữ số |
%y | Năm, số (hai chữ số) |
%% | Chữ % nhân vật |
% | x , cho bất kỳ “x nào ”Không được liệt kê ở trên |