I MySQL kan du använda GET_FORMAT()
funktion för att returnera en formatsträng för de angivna argumenten. Detta kan vara användbart när du behöver tillhandahålla en formatsträng till en annan funktion, till exempel DATE_FORMAT()
eller STR_TO_DATE()
.
Syntax
Den officiella syntaxen ser ut så här:
GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
Exempel 1 – Grundläggande användning
Här är ett exempel för att visa hur det fungerar.
SELECT GET_FORMAT(DATE,'USA');
Resultat:
+------------------------+ | GET_FORMAT(DATE,'USA') | +------------------------+ | %m.%d.%Y | +------------------------+
Så det här exemplet returnerar formatsträngen för USA. Vi kan nu ta den formatsträngen och använda den i olika datumformateringsfunktioner.
Så här:
SELECT DATE_FORMAT('2020-03-07', '%m.%d.%Y') AS 'Formatted';
Resultat:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Men vi kan även skicka denna funktion direkt till DATE_FORMAT()
fungera. Så här:
SELECT DATE_FORMAT('2020-03-07', GET_FORMAT(DATE,'USA')) AS 'Formatted';
Resultat:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Så detta besparar oss från att behöva komma ihåg vilken formatsträng vi ska använda – GET_FORMAT()
gör det åt oss.
Exempel 2 – Datumvärden
Det här exemplet listar alla varianter av det andra argumentet när det första argumentet är 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';
Resultat:
+----------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +----------+----------+----------+----------+----------+ | %m.%d.%Y | %Y-%m-%d | %Y-%m-%d | %d.%m.%Y | %Y%m%d | +----------+----------+----------+----------+----------+
Exempel 3 – Datetime-värden
Det här exemplet listar alla varianter av det andra argumentet när det första argumentet är 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';
Resultat:
+-------------------+-------------------+-------------------+-------------------+--------------+ | 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 | +-------------------+-------------------+-------------------+-------------------+--------------+
Exempel 4 – Tidsvärden
Det här exemplet listar alla varianter av det andra argumentet när det första argumentet är 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';
Resultat:
+-------------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +-------------+----------+----------+----------+----------+ | %h:%i:%s %p | %H:%i:%s | %H:%i:%s | %H.%i.%s | %H%i%s | +-------------+----------+----------+----------+----------+
Enhetsspecifikationer
Den returnerade formatsträngen kan bestå av valfri kombination av följande specifikationer.
Specifierare | Beskrivning |
---|---|
%a | Förkortat veckodagsnamn (Sun ..Sat ) |
%b | Förkortat månadsnamn (Jan ..Dec ) |
%c | Månad, numerisk (0 ..12 ) |
%D | Dag i månaden med engelskt suffix (0th , 1st , 2nd , 3rd , …) |
%d | Dag i månaden, numerisk (00 ..31 ) |
%e | Dag i månaden, numerisk (0 ..31 ) |
%f | Mikrosekunder (000000 ..999999 ) |
%H | Timme (00 ..23 ) |
%h | Timme (01 ..12 ) |
%I | Timme (01 ..12 ) |
%i | Minuter, numeriska (00 ..59 ) |
%j | Dag på året (001 ..366 ) |
%k | Timme (0 ..23 ) |
%l | Timme (1 ..12 ) |
%M | Månadsnamn (January ..December ) |
%m | Månad, numerisk (00 ..12 ) |
%p | AM eller PM |
%r | Tid, 12 timmar (hh:mm:ss följt av AM eller PM ) |
%S | Sekunder (00 ..59 ) |
%s | Sekunder (00 ..59 ) |
%T | Tid, 24 timmar (hh:mm:ss ) |
%U | Vecka (00 ..53 ), där söndag är den första dagen i veckan; WEEK() läge 0 |
%u | Vecka (00 ..53 ), där måndag är den första dagen i veckan; WEEK() läge 1 |
%V | Vecka (01 ..53 ), där söndag är den första dagen i veckan; WEEK() läge 2; används med %X |
%v | Vecka (01 ..53 ), där måndag är den första dagen i veckan; WEEK() läge 3; används med %x |
%W | Veckodagens namn (Sunday ..Saturday ) |
%w | Veckodag (0 =Söndag..6 =lördag) |
%X | År för veckan där söndag är den första dagen i veckan, numerisk, fyra siffror; används med %V |
%x | Veckans år, där måndag är den första dagen i veckan, numeriskt, fyra siffror; används med %v |
%Y | Årtal, siffror, fyra siffror |
%y | Årtal, numeriskt (två siffror) |
%% | En bokstavlig % tecken |
% | x , för någon "x ” inte listad ovan |