SQL: Ordenando por Datas

by Jenner Maciejewsky 21. dezembro 2008 23:27

Em um forum que participo, SQLSERVER2008, alguém estava com uma dúvida a respeito de como ordenar um campo data pelo mês e dia, ignorando o ano.

 

Vejamos um exemplo, uma tabela com algumas datas:

 

Select     IDPEDIDO, DATA
FROM         _Datas
ORDER BY DATA

 

Resultado:

1    10/06/2004 00:00:00
2    13/06/2004 00:00:00
3    10/07/2004 00:00:00
4    01/01/2005 00:00:00
5    01/06/2005 00:00:00
6    10/06/2005 00:00:00
7    01/01/2006 00:00:00
8    01/01/2007 00:00:00
9    10/06/2007 00:00:00

 

O Resultado acima mostra as datas ordenadas por dia, mês e ano. Então como ordenar por Mês e Dia, neste caso é preciso na Cláusula do OrderBy efetuar a conversão da Data para um formato que mostre por Mês, Dia e Ano (mm/dd/yyyy)?

 

Select     IDPEDIDO, DATA
FROM         _Datas
ORDER BY CONVERT(Char, DATA, 101)

Resultado:

4    01/01/2005 00:00:00
7    01/01/2006 00:00:00
8    01/01/2007 00:00:00
5    01/06/2005 00:00:00
1    10/06/2004 00:00:00
6    10/06/2005 00:00:00
9    10/06/2007 00:00:00
2    13/06/2004 00:00:00
3    10/07/2004 00:00:00

 

Observe que são mostrados todos as datas em Ordem de Mês/Dia/Ano. O mesmo não funcionaria com o Convert(Char, DATA, 100) pois neste caso o mês estaria sendo ordenado pelo nome do mês e não o número correspondente.

 

Para outros formatos vejam:

-- mmm dd aaaa hh:mm 
Select CONVERT(Char,GETDATE(),100) 

-- mm/dd/aaaa
Select CONVERT(Char,GETDATE(),101) 

-- aaaa.mm.dd
Select CONVERT(Char,GETDATE(),102) 

-- dd/mm/aaaa
Select CONVERT(Char,GETDATE(),103)

-- mm.dd.aaaa
Select CONVERT(Char,GETDATE(),104)

-- aaaammdd
Select CONVERT(Char,GETDATE(),112)
 
-- aaaa-mm-ddThh:mm:ss
Select CONVERT(Char,GETDATE(),126)

 

Mais informações sobre conversão de datas em SQL:

MSDN Library: CAST e CONVERT (Transact-SQL)

MSSQLTips.com: Date/Time Conversions Using SQL Server

SQL Tutorials: SQL CAST and CONVERT

The Code Project: Robyn Page's SQL Server Date/Time Workbench

 

 

 

Jenner Maciejewsky Rocha
MVP Visual Basic

Tags: , , ,

Blog | TechNet | SQL | Comunidade | DICAS | General | MSDN

Os comentários estão fechados

Posts Antigos

Awards