Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exemplos de GET_FORMAT() – MySQL


No MySQL, você pode usar o GET_FORMAT() função para retornar uma string de formato para os argumentos fornecidos. Isso pode ser útil quando você precisa fornecer uma string de formato para outra função, como DATE_FORMAT() ou STR_TO_DATE() .


Sintaxe


A sintaxe oficial é assim:
GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})

Exemplo 1 – Uso básico


Aqui está um exemplo para demonstrar como funciona.
SELECT GET_FORMAT(DATE,'USA');

Resultado:
+------------------------+
| GET_FORMAT(DATE,'USA') |
+------------------------+
| %m.%d.%Y               |
+------------------------+

Portanto, este exemplo retorna a string de formato para EUA. Agora podemos pegar essa string de formato e usá-la em várias funções de formatação de data.

Assim:
SELECT DATE_FORMAT('2020-03-07', '%m.%d.%Y') AS 'Formatted';

Resultado:
+------------+
| Formatted  |
+------------+
| 03.07.2020 |
+------------+

No entanto, também podemos passar esta função diretamente para o DATE_FORMAT() função. Assim:
SELECT DATE_FORMAT('2020-03-07', GET_FORMAT(DATE,'USA')) AS 'Formatted';

Resultado:
+------------+
| Formatted  |
+------------+
| 03.07.2020 |
+------------+

Portanto, isso nos poupa de ter que lembrar qual string de formato usar – GET_FORMAT() faz isso por nós.

Exemplo 2 – Valores de data


Este exemplo lista todas as variações do segundo argumento quando o primeiro argumento é 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   |
+----------+----------+----------+----------+----------+

Exemplo 3 – Valores de data e hora


Este exemplo lista todas as variações do segundo argumento quando o primeiro argumento é 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 |
+-------------------+-------------------+-------------------+-------------------+--------------+

Exemplo 4 – Valores de tempo


Este exemplo lista todas as variações do segundo argumento quando o primeiro argumento é 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 unidade


A string de formato retornada pode ser composta por qualquer combinação dos seguintes especificadores.
Especificador Descrição
%a Nome abreviado do dia da semana (Sun ..Sat )
%b Nome do mês abreviado (Jan ..Dec )
%c Mês, numérico (0 ..12 )
%D Dia do mês com sufixo em inglês (0th , 1st , 2nd , 3rd , …)
%d Dia do mês, numérico (00 ..31 )
%e Dia do mês, numérico (0 ..31 )
%f Microssegundos (000000 ..999999 )
%H Hora (00 ..23 )
%h Hora (01 ..12 )
%I Hora (01 ..12 )
%i Minutos, numérico (00 ..59 )
%j Dia do ano (001 ..366 )
%k Hora (0 ..23 )
%l Hora (1 ..12 )
%M Nome do mês (January ..December )
%m Mês, numérico (00 ..12 )
%p AM ou PM
%r Hora, 12 horas (hh:mm:ss seguido por AM ou PM )
%S Segundos (00 ..59 )
%s Segundos (00 ..59 )
%T Horário, 24 horas (hh:mm:ss )
%U Semana (00 ..53 ), onde domingo é o primeiro dia da semana; WEEK() modo 0
%u Semana (00 ..53 ), onde segunda-feira é o primeiro dia da semana; WEEK() modo 1
%V Semana (01 ..53 ), onde domingo é o primeiro dia da semana; WEEK() modo 2; usado com %X
%v Semana (01 ..53 ), onde segunda-feira é o primeiro dia da semana; WEEK() modo 3; usado com %x
%W Nome do dia da semana (Sunday ..Saturday )
%w Dia da semana (0 =Domingo..6 =Sábado)
%X Ano da semana em que domingo é o primeiro dia da semana, numérico, quatro dígitos; usado com %V
%x Ano para a semana, onde segunda-feira é o primeiro dia da semana, numérico, quatro dígitos; usado com %v
%Y Ano, numérico, quatro dígitos
%y Ano, numérico (dois dígitos)
%% Um literal % personagem
%x x , para qualquer “x ” não listado acima