In MariaDB, GET_FORMAT()
è una funzione di data e ora incorporata che restituisce una stringa di formato.
Questa funzione può essere utile quando si lavora con funzioni che richiedono una stringa di formato, come DATE_FORMAT()
e STR_TO_DATE()
.
Sintassi
La sintassi è questa:
GET_FORMAT({DATE|DATETIME|TIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
Esempio
Ecco un esempio:
SELECT GET_FORMAT(DATE, 'EUR');
Risultato:
+-------------------------+ | GET_FORMAT(DATE, 'EUR') | +-------------------------+ | %d.%m.%Y | +-------------------------+
Questo ci mostra il formato da utilizzare quando si lavora con le date in formato EUR.
Ecco un altro esempio. Questa volta restituiamo la stringa di formato ISO per datetime:
SELECT GET_FORMAT(DATETIME, 'ISO');
Risultato:
+-----------------------------+ | GET_FORMAT(DATETIME, 'ISO') | +-----------------------------+ | %Y-%m-%d %H:%i:%s | +-----------------------------+
Con DATE_FORMAT()
In questo esempio, utilizzo GET_FORMAT()
come secondo argomento per DATE_FORMAT()
funzione. Ciò mi consente di formattare la data senza dover ricordare la stringa di formato effettiva da utilizzare.
SELECT DATE_FORMAT('2030-08-25', GET_FORMAT(DATE,'USA'));
Risultato:
+---------------------------------------------------+ | DATE_FORMAT('2030-08-25', GET_FORMAT(DATE,'USA')) | +---------------------------------------------------+ | 08.25.2030 | +---------------------------------------------------+
Possibili stringhe di formato
Ecco una tabella delle possibili stringhe di formato:
Argomenti | Formato risultante |
---|---|
DATE, 'EUR' | '%d.%m.%Y' |
DATE, 'USA' | '%m.%d.%Y' |
DATE, 'JIS' | '%Y-%m-%d' |
DATE, 'ISO' | '%Y-%m-%d' |
DATE, 'INTERNAL' | '%Y%m%d' |
DATETIME, 'EUR' | '%Y-%m-%d %H.%i.%s' |
DATETIME, 'USA' | '%Y-%m-%d %H.%i.%s' |
DATETIME, 'JIS' | '%Y-%m-%d %H:%i:%s' |
DATETIME, 'ISO' | '%Y-%m-%d %H:%i:%s' |
DATETIME, 'INTERNAL' | '%Y%m%d%H%i%s' |
TIME, 'EUR' | '%H.%i.%s' |
TIME, 'USA' | '%h:%i:%s %p' |
TIME, 'JIS' | '%H:%i:%s' |
TIME, 'ISO' | '%H:%i:%s' |
TIME, 'INTERNAL' | '%H%i%s' |
Argomento mancante
Chiamando GET_FORMAT()
con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:
SELECT GET_FORMAT();
Risultato:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
E un altro esempio:
SELECT GET_FORMAT( DATE, 'JIS', 'OOPS' );
Risultato:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' 'OOPS' )' at line 1