En MySQL, puede usar GET_FORMAT()
función para devolver una cadena de formato para los argumentos proporcionados. Esto puede ser útil cuando necesita proporcionar una cadena de formato a otra función, como DATE_FORMAT()
o STR_TO_DATE()
.
Sintaxis
La sintaxis oficial es así:
GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
Ejemplo 1:uso básico
Aquí hay un ejemplo para demostrar cómo funciona.
SELECT GET_FORMAT(DATE,'USA');
Resultado:
+------------------------+ | GET_FORMAT(DATE,'USA') | +------------------------+ | %m.%d.%Y | +------------------------+
Entonces, este ejemplo devuelve la cadena de formato para EE. UU. Ahora podemos tomar esa cadena de formato y usarla en varias funciones de formato de fecha.
Así:
SELECT DATE_FORMAT('2020-03-07', '%m.%d.%Y') AS 'Formatted';
Resultado:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Sin embargo, también podemos pasar esta función directamente al DATE_FORMAT()
función. Así:
SELECT DATE_FORMAT('2020-03-07', GET_FORMAT(DATE,'USA')) AS 'Formatted';
Resultado:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Esto nos evita tener que recordar qué cadena de formato usar:GET_FORMAT()
hace eso por nosotros.
Ejemplo 2:valores de fecha
Este ejemplo enumera todas las variaciones del segundo argumento cuando el primer argumento es 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';
Resultado:
+----------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +----------+----------+----------+----------+----------+ | %m.%d.%Y | %Y-%m-%d | %Y-%m-%d | %d.%m.%Y | %Y%m%d | +----------+----------+----------+----------+----------+
Ejemplo 3:valores de fecha y hora
Este ejemplo enumera todas las variaciones del segundo argumento cuando el primer argumento es 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';
Resultado:
+-------------------+-------------------+-------------------+-------------------+--------------+ | 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 | +-------------------+-------------------+-------------------+-------------------+--------------+
Ejemplo 4:valores de tiempo
Este ejemplo enumera todas las variaciones del segundo argumento cuando el primer argumento es 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';
Resultado:
+-------------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +-------------+----------+----------+----------+----------+ | %h:%i:%s %p | %H:%i:%s | %H:%i:%s | %H.%i.%s | %H%i%s | +-------------+----------+----------+----------+----------+
Especificadores de unidades
La cadena de formato devuelta puede estar formada por cualquier combinación de los siguientes especificadores.
Especificador | Descripción |
---|---|
%a | Nombre abreviado del día de la semana (Sun ..Sat ) |
%b | Nombre abreviado del mes (Jan ..Dec ) |
%c | Mes, numérico (0 ..12 ) |
%D | Día del mes con sufijo en inglés (0th , 1st , 2nd , 3rd , …) |
%d | Día del mes, numérico (00 ..31 ) |
%e | Día del mes, numérico (0 ..31 ) |
%f | Microsegundos (000000 ..999999 ) |
%H | Hora (00 ..23 ) |
%h | Hora (01 ..12 ) |
%I | Hora (01 ..12 ) |
%i | Minutos, numérico (00 ..59 ) |
%j | Día del año (001 ..366 ) |
%k | Hora (0 ..23 ) |
%l | Hora (1 ..12 ) |
%M | Nombre del mes (January ..Dec ) |
%m | Mes, numérico (00 ..12 ) |
%p | AM o PM |
%r | Hora, 12 horas (hh:mm:ss seguido de AM o PM ) |
%S | Segundos (00 ..59 ) |
%s | Segundos (00 ..59 ) |
%T | Hora, 24 horas (hh:mm:ss ) |
%U | Semana (00 ..53 ), donde el domingo es el primer día de la semana; WEEK() modo 0 |
%u | Semana (00 ..53 ), donde el lunes es el primer día de la semana; WEEK() modo 1 |
%V | Semana (01 ..53 ), donde el domingo es el primer día de la semana; WEEK() modo 2; usado con %X |
%v | Semana (01 ..53 ), donde el lunes es el primer día de la semana; WEEK() modo 3; usado con %x |
%W | Nombre del día de la semana (Sunday ..Sat ) |
%w | Día de la semana (0 =Domingo..6 =sábado) |
%X | Año de la semana donde el domingo es el primer día de la semana, numérico, cuatro dígitos; usado con %V |
%x | Año de la semana, donde lunes es el primer día de la semana, numérico, cuatro dígitos; usado con %v |
%Y | Año, numérico, cuatro dígitos |
%y | Año, numérico (dos dígitos) |
%% | Un % literal personaje |
% | x , para cualquier “x ” no listado arriba |