ORDENAR DADOS SQL
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]
é 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]
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?
é MySQL
Vou fingir que não li isso...
Quais os tipos de dados dos campos?
Quais os tipos de dados dos campos?
tudo varchar
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...
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&[Ô][ô] [Ô])
%>
Vlw ALEDAORIGINAL, vou tentar aqui...... dando certo eu re falo, blz???
Obrigado!!
Obrigado!!
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
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