Funções e Conversões de Datas

Pessoal,
Boa noite!

Desculpem por ficar 1 mês sem escrever um artigo se quer, é a correria do dia-a-dia. Hoje irei falar um pouco sobre as funções e as conversões de datas. As funções de data são usadas para obter acesso às características de tempo disponibilizadas no SQL Server. Seguem abaixo algumas funções de datas:

DATEADD – Retorna uma determinada data com base no valor inteiro determinado no segundo parâmetro. Exemplos:

select dateadd(day, 5, getdate())  as AdicionaCincoDias,

DATEDIFF – Retorna a contagem, valor inteiro, entre duas datas, início e fim. Exemplos:

select datediff(month, ‘1986-01-25’, ‘2010-01-25’) as QuantidadeMeses,

 

DATENAME – Retorna uma quantidade de caracteres especificada pelo primeiro parâmetro.

select datename(year, ‘1986-01-25’)      as Ano

 

DATEPART – Retorna um valor inteiro que representa o primeiro parâmetro identificado.

select datepart(day, getdate())    as Dia,

Conversões de Datas

Na tabela abaixo seguem as conversões que podem ser utilizadas para exibição através de uma query dentro de um select list:

Com Centena

Páis

Entrada/Saída

100

Default

month DD YYYY h:min(AM/PM)

101

USA

MM/DD/YYYY

102

ANSI

YYYY.MM.DD

103

Brasil

DD/MM/YYYY

104

Alemanha

DD.MM.YYYY

105

Itália

DD.MM.YYYY

106

DD month YYYY

107

month DD, YYYY

108

hh:mm:ss

109

Default + miliseconds

hh:mm:ss

110

USA

MM-DD-YYYY

111

Japão

YYYY/MM/DD

112

ISO

YYYYMMDD

113

Default Europa + miliseconds

DD month YYYY hh:mm:ss:ms(24h)

114

hh:mm:ss:ms(24h)

120

ODBC canonical

YYYY-MM-DD hh:mm:ss(24h)

121

ODBC canonical (with miliseconds)

YYYY-MM-DD hh:mm:ss:ms(24h)

126

ISO 8601

YYYY-MM-DDThh:mm:ss:ms(24h)

131

Hijri

dd/mm/yyyy hh:mm:ss:msAM

 

Abaixo exemplo de código T-SQL para conversão dedatas:

select      CONVERT(varchar, getdate(), 100) as ‘100’,

            CONVERT(varchar, getdate(), 101) as ‘101’,

            CONVERT(varchar, getdate(), 102) as ‘102’,

            CONVERT(varchar, getdate(), 103) as ‘103’

 

Vimos neste artigo, exemplos do uso de funções e conversões de data no SQL Server 2008. Outros SGBDs implementam funções de data, provavelmente com sintaxe diferente. Consulte a documentação do SGBD que você utiliza, para obter maiores detalhes.

Espero mais uma vez ter contribuído no conhecimento a vocês.

Grande abraço a todos e até a próxima. Sucesso sempre!!!

4 comentários

  1. Fala Gabriel, parabéns pelo blog cara.

    Me deparei c/ um problema ak, mesmo utilizando (103) não consegui utilizar a mesma rotina de comparação entre datas em dois servidores diferentes (um americano e um brasileiro).

    É mais interessante realizar essas funções de data no sql mesmo, ou na aplicação através do c# ? (Devido a problemas de compatibilidade ?).

    Abraços,

    • Grande Nycolas, pro aonde anda meu amigo? Primeiramente pra fazer comparação entre datas o aconselhável é você não formatar os parâmetros de datas que estão sendo utilizados, porém no seu caso, você pode formatar de brasileiro para americano, pois o padrão principal é americano, caso não dê certo, post aqui sua query para que eu possa analisar ou encaminhe para o e-mail gabriel.ccomputacao@hotmail.com. Quanto a desenvolver querys em aplicação ou no SQL, o interessante é você criar objetos como procedures, functions ou views onde a aplicação chame esses objetos para serem executados. No seu caso, para que se tenha um ganho de performance e tenha integridade no código T-SQL facilitando assim uma futura manutenção. Espero ter lhe ajudado. Grande abraço.

  2. Gabriel muito interessante o post, gostei muito !

    Estou com uma duvida que possivelmente se tornara um problema futuro em projeto de ETL aqui na empresa, tenho como saber se uma determinada data esta armazenada em um formato especifico (100,101,102,etc) via SQL? pretendo realizar a conversão para o 103-Brasil depois de descobrir o tipo de data

    Muito obrigado e parabéns

    • Enilton,

      Boa noite!
      Desculpe pela demora da resposta, fiquei muito tempo sem mexer no blog, em breve irei atualizar.
      Vamos a sua resposta:
      Não tenho certeza, mas acho que existe um collation que você configura no momento da instalação da instância do SQL que permite essa escolha. Mas uma dica fácil e rápido de você trabalhar é na busca da query inserir a conversão para 103 e gravar no banco no modelo americano.

      Grande abraço e até a próxima

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s