In MySQL, puoi usare GET_FORMAT()
funzione per restituire una stringa di formato per gli argomenti forniti. Questo può essere utile quando devi fornire una stringa di formato a un'altra funzione, come DATE_FORMAT()
o STR_TO_DATE()
.
Sintassi
La sintassi ufficiale è questa:
GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
Esempio 1 – Utilizzo di base
Ecco un esempio per dimostrare come funziona.
SELECT GET_FORMAT(DATE,'USA');
Risultato:
+------------------------+ | GET_FORMAT(DATE,'USA') | +------------------------+ | %m.%d.%Y | +------------------------+
Quindi questo esempio restituisce la stringa di formato per USA. Ora possiamo prendere quella stringa di formato e usarla in varie funzioni di formattazione della data.
In questo modo:
SELECT DATE_FORMAT('2020-03-07', '%m.%d.%Y') AS 'Formatted';
Risultato:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Tuttavia, possiamo anche passare questa funzione direttamente a DATE_FORMAT()
funzione. In questo modo:
SELECT DATE_FORMAT('2020-03-07', GET_FORMAT(DATE,'USA')) AS 'Formatted';
Risultato:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Quindi questo ci evita di dover ricordare quale stringa di formato usare – GET_FORMAT()
lo fa per noi.
Esempio 2 – Valori di data
Questo esempio elenca tutte le variazioni del secondo argomento quando il primo argomento è 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';
Risultato:
+----------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +----------+----------+----------+----------+----------+ | %m.%d.%Y | %Y-%m-%d | %Y-%m-%d | %d.%m.%Y | %Y%m%d | +----------+----------+----------+----------+----------+
Esempio 3 – Valori di data e ora
Questo esempio elenca tutte le variazioni del secondo argomento quando il primo argomento è 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';
Risultato:
+-------------------+-------------------+-------------------+-------------------+--------------+ | 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 | +-------------------+-------------------+-------------------+-------------------+--------------+
Esempio 4 – Valori temporali
Questo esempio elenca tutte le variazioni del secondo argomento quando il primo argomento è 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';
Risultato:
+-------------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +-------------+----------+----------+----------+----------+ | %h:%i:%s %p | %H:%i:%s | %H:%i:%s | %H.%i.%s | %H%i%s | +-------------+----------+----------+----------+----------+
Specificatori di unità
La stringa di formato restituita può essere composta da qualsiasi combinazione dei seguenti indicatori.
Specificatore | Descrizione |
---|---|
%a | Nome abbreviato del giorno della settimana (Sun ..Sat ) |
%b | Nome abbreviato del mese (Jan ..Dec ) |
%c | Mese, numerico (0 ..12 ) |
%D | Giorno del mese con suffisso inglese (0th , 1st , 2nd , 3rd , …) |
%d | Giorno del mese, numerico (00 ..31 ) |
%e | Giorno del mese, numerico (0 ..31 ) |
%f | Microsecondi (000000 ..999999 ) |
%H | Ora (00 ..23 ) |
%h | Ora (01 ..12 ) |
%I | Ora (01 ..12 ) |
%i | Minuti, numerici (00 ..59 ) |
%j | Giorno dell'anno (001 ..366 ) |
%k | Ora (0 ..23 ) |
%l | Ora (1 ..12 ) |
%M | Nome del mese (January ..December ) |
%m | Mese, numerico (00 ..12 ) |
%p | AM o PM |
%r | Ora, 12 ore (hh:mm:ss seguito da AM o PM ) |
%S | Secondi (00 ..59 ) |
%s | Secondi (00 ..59 ) |
%T | Ora, 24 ore (hh:mm:ss ) |
%U | Settimana (00 ..53 ), dove domenica è il primo giorno della settimana; WEEK() modalità 0 |
%u | Settimana (00 ..53 ), dove lunedì è il primo giorno della settimana; WEEK() modalità 1 |
%V | Settimana (01 ..53 ), dove domenica è il primo giorno della settimana; WEEK() modalità 2; utilizzato con %X |
%v | Settimana (01 ..53 ), dove lunedì è il primo giorno della settimana; WEEK() modalità 3; utilizzato con %x |
%W | Nome del giorno della settimana (Sunday ..Saturday ) |
%w | Giorno della settimana (0 =Domenica..6 =sabato) |
%X | Anno per la settimana in cui domenica è il primo giorno della settimana, numerico, a quattro cifre; utilizzato con %V |
%x | Anno della settimana, dove lunedì è il primo giorno della settimana, numerico, a quattro cifre; usato con %v |
%Y | Anno, numerico, quattro cifre |
%y | Anno, numerico (due cifre) |
%% | Un letterale % carattere |
% | x , per qualsiasi “x ” non elencato sopra |