No SQL Server, você pode usar o T-SQL
FORMAT()
função para formatar a data e/ou hora. Basta fornecer dois argumentos; a data/hora e o formato a utilizar. O formato é fornecido como uma string de formato. Uma string de formato define como a saída deve ser formatada.
O
FORMAT()
A função também aceita um argumento opcional de “cultura”, que permite especificar um idioma/localidade ao qual os resultados devem aderir. Exemplo básico
Veja um exemplo básico de como usar o
FORMAT()
função para formatar uma data. Data bruta
Primeiro, veja como é a data bruta. Se executarmos a seguinte instrução:
SELECT GETDATE();
Obtemos um resultado mais ou menos assim:
2018-05-03 02:36:54.480
Data formatada
Agora, podemos usar o
FORMAT()
função para formatar essa data e hora em nosso formato preferido. Por exemplo, poderíamos fazer isso:SELECT FORMAT( GETDATE(), 'D');
O que resulta nisso:
Thursday, May 3, 2018
Este é apenas um dos muitos formatos que poderíamos escolher. Aqui está outro:
SELECT FORMAT( GETDATE(), 'd');
O que resulta nisso:
5/3/2018
Os resultados reais irão variar dependendo da cultura que está sendo usada. Por padrão, o idioma da sessão atual é usado, mas você também pode substituir isso por um terceiro argumento (“cultura”).
Definindo uma localidade
Poderíamos adicionar um terceiro argumento (“cultura”) ao código acima para determinar a localidade a ser usada para o formato da data.
Então poderíamos fazer isso por exemplo:
SELECT FORMAT( GETDATE(), 'd', 'en-gb');
O que resulta nisso:
5/3/2018
Aqui está outro exemplo:
SELECT FORMAT( GETDATE(), 'd', 'zh-cn');
O que resulta nisso:
2018/5/3
Se a cultura argumento não for fornecido, o idioma da sessão atual será usado.
Veja como encontrar o idioma da sessão atual e como configurá-lo.
Observe que o idioma atual geralmente será o mesmo que o idioma padrão do usuário, mas esse pode não ser o caso se o usuário tiver alterado o idioma atual usando
SET LANGUAGE
. De qualquer forma, você também pode descobrir qual é o idioma padrão. Como você pode imaginar, você pode obter resultados bem diferentes dependendo do seu idioma atual ou do valor de qualquer argumento de “cultura”. Veja Como as configurações de idioma podem afetar seus resultados FORMAT() para mais exemplos.
Extrair o mês/semana/ano
Você pode usar o
FORMAT()
função para retornar apenas a parte do mês da data, ou a semana, ou o ano, conforme necessário. Observe que eles diferenciam maiúsculas de minúsculas. Por exemplo,
MMM
formata o mês de forma diferente para mmm
. Mês
Código de exemplo para retornar a parte do mês:
SELECT FORMAT( GETDATE(), 'MMM');
Resultado:
May
Ano
Código de exemplo para retornar a parte do ano:
SELECT FORMAT( GETDATE(), 'yyyy');
Resultado:
2018
Dia
Código de exemplo para devolução da parte do dia:
SELECT FORMAT( GETDATE(), 'dddd');
Resultado:
Thursday
Extraindo o tempo
Você também pode usar o
FORMAT()
função para retornar a hora em um formato especificado. Aqui está um exemplo:
SELECT FORMAT( GETDATE(), 'hh.mm');
Resultado:
03.37
O designador AM/PM
Você também pode adicionar
tt
para incluir o designador AM/PM:SELECT FORMAT( GETDATE(), 'hh.mm tt');
Resultado:
03.37 AM
Combinando Strings de Formato
Você também pode combinar essas strings de formato para fornecer seu próprio formato de data personalizado. Exemplo:
SELECT FORMAT( GETDATE(), 'hh.mm tt dddd, dd MMMM, yyyy');
Resultado:
03.41 AM Thursday, 03 May, 2018
Referência de especificadores de formato de data e hora
Os artigos a seguir contêm todos os especificadores de formato de data e hora que podem ser usados com o
FORMAT()
função no SQL Server, juntamente com exemplos de T-SQL:- Strings de formato padrão de data e hora
- Strings de formato personalizado de data e hora
Estes são os mesmos especificadores de formato de data e hora que são suportados pelo .NET Framework (o
FORMAT()
função depende do .NET Framework). Referência de especificadores de formato numérico
Os artigos a seguir contêm todos os especificadores de formato numérico que você pode usar com o
FORMAT()
função (ou seja, para formatar números):- Strings de formato numérico padrão
- Strings de formato numérico personalizado
Esses são os mesmos especificadores de formato numérico com suporte do .NET Framework.
Outras funções de data
O T-SQL também inclui várias outras funções que ajudam a extrair partes de datas. Isso inclui funções como
DAY()
, MONTH()
, YEAR()
, DATEPART()
e DATENAME()
.