sql >> Databasteknik >  >> RDS >> Mysql

GET_FORMAT() Exempel – MySQL

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 x , för någon "x ” inte listad ovan


  1. Hur tar jag bort icke-avbrytande blanksteg från en kolumn i SQL-servern?

  2. Hur man skapar en parameterfråga i Access

  3. ORA-12728:ogiltigt intervall i reguljärt uttryck

  4. Hur STR_TO_DATE() fungerar i MariaDB