Trong MySQL, bạn có thể sử dụng GET_FORMAT()
hàm để trả về một chuỗi định dạng cho các đối số được cung cấp. Điều này có thể hữu ích khi bạn cần cung cấp một chuỗi định dạng cho một hàm khác, chẳng hạn như DATE_FORMAT()
hoặc STR_TO_DATE()
.
Cú pháp
Cú pháp chính thức như sau:
GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
Ví dụ 1 - Cách sử dụng cơ bản
Dưới đây là một ví dụ để chứng minh cách hoạt động của nó.
SELECT GET_FORMAT(DATE,'USA');
Kết quả:
+------------------------+ | GET_FORMAT(DATE,'USA') | +------------------------+ | %m.%d.%Y | +------------------------+
Vì vậy, ví dụ này trả về chuỗi định dạng cho Hoa Kỳ. Bây giờ chúng ta có thể lấy chuỗi định dạng đó và sử dụng nó trong các chức năng định dạng ngày tháng khác nhau.
Như thế này:
SELECT DATE_FORMAT('2020-03-07', '%m.%d.%Y') AS 'Formatted';
Kết quả:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Tuy nhiên, chúng ta cũng có thể chuyển trực tiếp hàm này vào DATE_FORMAT()
hàm số. Như thế này:
SELECT DATE_FORMAT('2020-03-07', GET_FORMAT(DATE,'USA')) AS 'Formatted';
Kết quả:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Vì vậy, điều này giúp chúng tôi không phải nhớ chuỗi định dạng nào sẽ sử dụng - GET_FORMAT()
làm điều đó cho chúng tôi.
Ví dụ 2 - Giá trị ngày
Ví dụ này liệt kê tất cả các biến thể của đối số thứ hai khi đối số đầu tiên là DATE
.
SELECT GET_FORMAT(DATE,'USA') AS 'USA', GET_FORMAT(DATE,'JIS') AS 'JIS', GET_FORMAT(DATE,'ISO') AS 'ISO', GET_FORMAT(DATE,'EUR') AS 'EUR', GET_FORMAT(DATE,'INTERNAL') AS 'INTERNAL';
Kết quả:
+----------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +----------+----------+----------+----------+----------+ | %m.%d.%Y | %Y-%m-%d | %Y-%m-%d | %d.%m.%Y | %Y%m%d | +----------+----------+----------+----------+----------+
Ví dụ 3 - Giá trị ngày giờ
Ví dụ này liệt kê tất cả các biến thể của đối số thứ hai khi đối số đầu tiên là DATETIME
.
SELECT GET_FORMAT(DATETIME,'USA') AS 'USA', GET_FORMAT(DATETIME,'JIS') AS 'JIS', GET_FORMAT(DATETIME,'ISO') AS 'ISO', GET_FORMAT(DATETIME,'EUR') AS 'EUR', GET_FORMAT(DATETIME,'INTERNAL') AS 'INTERNAL';
Kết quả:
+-------------------+-------------------+-------------------+-------------------+--------------+ | USA | JIS | ISO | EUR | INTERNAL | +-------------------+-------------------+-------------------+-------------------+--------------+ | %Y-%m-%d %H.%i.%s | %Y-%m-%d %H:%i:%s | %Y-%m-%d %H:%i:%s | %Y-%m-%d %H.%i.%s | %Y%m%d%H%i%s | +-------------------+-------------------+-------------------+-------------------+--------------+
Ví dụ 4 - Giá trị thời gian
Ví dụ này liệt kê tất cả các biến thể của đối số thứ hai khi đối số đầu tiên là TIME
.
SELECT GET_FORMAT(TIME,'USA') AS 'USA', GET_FORMAT(TIME,'JIS') AS 'JIS', GET_FORMAT(TIME,'ISO') AS 'ISO', GET_FORMAT(TIME,'EUR') AS 'EUR', GET_FORMAT(TIME,'INTERNAL') AS 'INTERNAL';
Kết quả:
+-------------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +-------------+----------+----------+----------+----------+ | %h:%i:%s %p | %H:%i:%s | %H:%i:%s | %H.%i.%s | %H%i%s | +-------------+----------+----------+----------+----------+
Bộ chỉ định đơn vị
Chuỗi định dạng trả về có thể được tạo thành từ bất kỳ sự kết hợp nào của các ký hiệu sau.
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 |