Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como formatar a data e hora no SQL Server


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.

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() .