MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como GET_FORMAT() funciona no MariaDB


No MariaDB, GET_FORMAT() é uma função de data e hora integrada que retorna uma string de formato.

Esta função pode ser útil ao trabalhar com funções que requerem uma string de formato, como DATE_FORMAT() e STR_TO_DATE() .

Sintaxe


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

Exemplo


Aqui está um exemplo:
SELECT GET_FORMAT(DATE, 'EUR'); 

Resultado:
+-------------------------+| GET_FORMAT(DATA, 'EUR') |+-------------------------+| %d.%m.%Y |+-------------------------+

Isso nos mostra o formato a ser usado ao trabalhar com datas no formato EUR.

Aqui está outro exemplo. Desta vez, retornamos a string de formato ISO para datetime:
SELECT GET_FORMAT(DATETIME, 'ISO'); 

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

Com DATE_FORMAT()


Neste exemplo, eu uso GET_FORMAT() como o segundo argumento para o DATE_FORMAT() função. Isso me permite formatar a data sem precisar lembrar a string de formato real a ser usada.
SELECT DATE_FORMAT('2030-08-25', GET_FORMAT(DATE,'USA')); 

Resultado:
+---------------------------------------------- -----+| DATE_FORMAT('2030-08-25', GET_FORMAT(DATA,'EUA')) |+----------------------------- ------------+| 25.08.2030 |+------------------------------------------------------------ ------+

Strings de formato possíveis


Aqui está uma tabela das strings de formato possíveis:
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 ausente


Chamando GET_FORMAT() com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro:
SELECT GET_FORMAT(); 

Resultado:
ERRO 1064 (42000):Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde à versão do seu servidor MariaDB para a sintaxe correta para usar perto de ')' na linha 1

E outro exemplo:
SELECT GET_FORMAT( DATE, 'JIS', 'OOPS' ); 

Resultado:
ERRO 1064 (42000):Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde à versão do seu servidor MariaDB para a sintaxe correta para usar perto de ' 'OOPS' )' na linha 1