ORDENAR DADOS SQL

GONTIJOBR 14/05/2012 15:03:58
#401960
boa tarde galera... to com um problema de sql que não sei resolver....

é o seguinte, eu tenho uma tabela que se chama LEILOES nele tem os campos DATA, ENCERRADO, HORA.

Eu preciso que ele me mostre os leiloes que estao em aberto primeiro na ordem decrescente e logo em seguida, na sequencia os mesmos leiloes encerrados em ordem também decrescente. Alguém poderia me ajudar???


O select que tenho é este: [txt-color=#e80000]Select * From leiloes where publicar = 1 order by data desc, encerrado, hora limit 24[/txt-color]

KERPLUNK 14/05/2012 15:27:31
#401963
Quais os tipos de dados dos campos data, encerrado e hora? Porque não usar data e hora em um campo só, já que é um sql server?
GONTIJOBR 14/05/2012 15:47:09
#401968
é MySQL
KERPLUNK 14/05/2012 15:50:12
#401970
Vou fingir que não li isso...

Quais os tipos de dados dos campos?
GONTIJOBR 14/05/2012 15:54:09
#401971
tudo varchar
KERPLUNK 14/05/2012 16:44:43
#401980
Então você não vai conseguir ordenar corretamente até usar tipos de dados data. Você pode ou usar um cast ou converter esses dados em uma outra coluna com tipo data...
USUARIO.EXCLUIDOS 14/05/2012 18:21:01
#401987
Tenta adaptar isso , mais claro do jeito que voce precisa


Citação:

<%
If CStr(Len(iCurrent)) = CStr([Ô]1[Ô]) Then
dd = [Ô]0[Ô] & iCurrent
Else
dd = iCurrent
End If
If CStr(Len(Month(dDate))) = CStr([Ô]1[Ô]) Then
mm = [Ô]0[Ô] & Month(dDate)
Else
mm =Month(dDate)
End If
datapraver = dd & [Ô]/[Ô] & mm & [Ô]/[Ô] & Year(dDate)

set ververm = conexao.execute ([Ô]SELECT * FROM compras WHERE status <> [ô]Compra em Aberto[ô] and datacompra=[ô][Ô]&datapraver&[Ô][ô] [Ô])
%>

GONTIJOBR 14/05/2012 19:49:57
#401990
Vlw ALEDAORIGINAL, vou tentar aqui...... dando certo eu re falo, blz???

Obrigado!!
KERPLUNK 15/05/2012 09:36:52
#402011
Não vai adiantar, você tem que fazer o cast nos campos da tabela, esses campos estão com formato string(varchar) e por isso serão ordenados como tal. Para ordená-los com formato de data, precisa usar o cast nos mesmos:
Select * From leiloes where publicar = 1 order by cast(data as DATE) desc, encerrado, cast(hora as TIME) limit 24
Tópico encerrado , respostas não são mais permitidas