I MySQL kan du bruge GET_FORMAT()
funktion til at returnere en formatstreng for de angivne argumenter. Dette kan være nyttigt, når du skal angive en formatstreng til en anden funktion, såsom DATE_FORMAT()
eller STR_TO_DATE()
.
Syntaks
Den officielle syntaks lyder sådan her:
GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
Eksempel 1 – Grundlæggende brug
Her er et eksempel for at vise, hvordan det virker.
SELECT GET_FORMAT(DATE,'USA');
Resultat:
+------------------------+ | GET_FORMAT(DATE,'USA') | +------------------------+ | %m.%d.%Y | +------------------------+
Så dette eksempel returnerer formatstrengen for USA. Vi kan nu tage denne formatstreng og bruge den i forskellige datoformateringsfunktioner.
Sådan:
SELECT DATE_FORMAT('2020-03-07', '%m.%d.%Y') AS 'Formatted';
Resultat:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Vi kan dog også videregive denne funktion direkte til DATE_FORMAT()
fungere. Sådan:
SELECT DATE_FORMAT('2020-03-07', GET_FORMAT(DATE,'USA')) AS 'Formatted';
Resultat:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Så dette sparer os for at skulle huske, hvilken formatstreng vi skal bruge – GET_FORMAT()
gør det for os.
Eksempel 2 – Datoværdier
Dette eksempel viser alle variationerne af det andet argument, når det første argument er 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 | +----------+----------+----------+----------+----------+
Eksempel 3 – Dato-tidsværdier
Dette eksempel viser alle variationerne af det andet argument, når det første argument er 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 | +-------------------+-------------------+-------------------+-------------------+--------------+
Eksempel 4 – Tidsværdier
Dette eksempel viser alle variationerne af det andet argument, når det første argument er 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 | +-------------+----------+----------+----------+----------+
Enhedsspecifikationer
Den returnerede formatstreng kan bestå af en hvilken som helst kombination af følgende specifikationer.
Specifier | Beskrivelse |
---|---|
%a | Forkortet ugedagsnavn (Sun ..Sat ) |
%b | Forkortet månedsnavn (Jan ..Dec ) |
%c | Måned, numerisk (0 ..12 ) |
%D | Dag i måneden med engelsk suffiks (0th , 1st , 2nd , 3rd , …) |
%d | Dag i måneden, numerisk (00 ..31 ) |
%e | Dag i måneden, numerisk (0 ..31 ) |
%f | Mikrosekunder (000000 ..999999 ) |
%H | Time (00 ..23 ) |
%h | Time (01 ..12 ) |
%I | Time (01 ..12 ) |
%i | Minutter, numerisk (00 ..59 ) |
%j | Dag i året (001 ..366 ) |
%k | Time (0 ..23 ) |
%l | Time (1 ..12 ) |
%M | Månedens navn (January ..December ) |
%m | Måned, numerisk (00 ..12 ) |
%p | AM eller PM |
%r | Tid, 12 timer (hh:mm:ss efterfulgt af AM eller PM ) |
%S | Sekunder (00 ..59 ) |
%s | Sekunder (00 ..59 ) |
%T | Tid, 24 timer (hh:mm:ss ) |
%U | Uge (00 ..53 ), hvor søndag er den første dag i ugen; WEEK() tilstand 0 |
%u | Uge (00 ..53 ), hvor mandag er den første dag i ugen; WEEK() tilstand 1 |
%V | Uge (01 ..53 ), hvor søndag er den første dag i ugen; WEEK() tilstand 2; brugt med %X |
%v | Uge (01 ..53 ), hvor mandag er den første dag i ugen; WEEK() tilstand 3; brugt med %x |
%W | Ugedagsnavn (Sunday ..Saturday ) |
%w | Ugedag (0 =søndag..6 =lørdag) |
%X | År for ugen, hvor søndag er den første dag i ugen, numerisk, fire cifre; bruges med %V |
%x | År for ugen, hvor mandag er den første dag i ugen, numerisk, fire cifre; brugt med %v |
%Y | Årtal, numerisk, fire cifre |
%y | År, numerisk (to cifre) |
%% | En bogstavelig % tegn |
% | x , for enhver "x ” ikke angivet ovenfor |