sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona GET_FORMAT() en MariaDB

En MariaDB, GET_FORMAT() es una función de fecha y hora integrada que devuelve una cadena de formato.

Esta función puede ser útil cuando se trabaja con funciones que requieren una cadena de formato, como DATE_FORMAT() y STR_TO_DATE() .

Sintaxis

La sintaxis es así:

GET_FORMAT({DATE|DATETIME|TIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})

Ejemplo

He aquí un ejemplo:

SELECT GET_FORMAT(DATE, 'EUR');

Resultado:

+-------------------------+
| GET_FORMAT(DATE, 'EUR') |
+-------------------------+
| %d.%m.%Y                |
+-------------------------+

Esto nos muestra el formato a utilizar cuando se trabaja con fechas en formato EUR.

Aquí hay otro ejemplo. Esta vez devolvemos la cadena de formato ISO para fecha y hora:

SELECT GET_FORMAT(DATETIME, 'ISO');

Resultado:

+-----------------------------+
| GET_FORMAT(DATETIME, 'ISO') |
+-----------------------------+
| %Y-%m-%d %H:%i:%s           |
+-----------------------------+

Con DATE_FORMAT()

En este ejemplo, uso GET_FORMAT() como segundo argumento del DATE_FORMAT() función. Esto me permite formatear la fecha sin tener que recordar la cadena de formato real a usar.

SELECT DATE_FORMAT('2030-08-25', GET_FORMAT(DATE,'USA'));

Resultado:

+---------------------------------------------------+
| DATE_FORMAT('2030-08-25', GET_FORMAT(DATE,'USA')) |
+---------------------------------------------------+
| 08.25.2030                                        |
+---------------------------------------------------+

Posibles cadenas de formato

Aquí hay una tabla de las posibles cadenas de formato:

Argumentos Formato resultante
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’

Argumento faltante

Llamando a GET_FORMAT() con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:

SELECT GET_FORMAT();

Resultado:

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

Y otro ejemplo:

SELECT GET_FORMAT( DATE, 'JIS', 'OOPS' );

Resultado:

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