SQL Server – Tratando dados de um DateTime separadamente
17 17UTC novembro 17UTC 2010 Deixe um comentário

Como série de novos posts desta temporada, nesse artigo iremos tratar dados especifico do tipo de dado (DateTime).
Essa semana como sempre super corrida, (que bom, porque não gosto de ficar parado), estava eu programando uma rotina de filtro para exibição de informações especificas para certo Ano em uma data. Determinado momento na Unit de Testes (BDD / TDD) deparei com a seguinte situação :
Como eu vou recuperar somente o ano deste DateTime de forma eficiente ?
… Pensei
… Pensei + Ainda ( Coisas Absurdas … Ex: POG (Programação Orientada a Gambiarra).
Então fui estudar mais SQL Server e descobri isso : O DATEPART ()
DATEPART () : “ Retorna um valor representando uma parte especifica de uma data. “( MSDN, Brazil – http://msdn.microsoft.com/en-us/library/aa258265(SQL.80).aspx )
A vantagem de usar a função do SQL Server DATEPART() é que ele é simples de usar e funciona com todas as versões do ADO, DAO e RDO. A desvantagem de usar a função DATEPART() é que ele é específico para o SQL Server. No entanto, outros servidores podem ter funções comparáveis.
Não confunda a função do SQL Server DATEPART() com a função DatePart() do Visual Basic, que é usada com o tipo de dados data do Visual Basic.
Sintaxe
O uso do DATEPART :
DATEPART (parte_da_data, campo)
Ex:
SELECT DataVenda, DATEPART(YEAR, DataVenda) FROM Vendas
No lugar do YEAR você pode usar também alguns procedimentos de um Datetime :
Ms for Milliseconds
Yy para Ano
Qq para um quarto do ano
Mm para mês
Dy para dia do Ano
Dd para dia do Mês
Wk para semana
Dw para dia da semana
Hh para hora
Mi para minuto
Ss para segundo