Xenofonte Postado Setembro 9, 2009 Denunciar Share Postado Setembro 9, 2009 Estou fazendo uma consulta SQL, mas não estou conseguindo organizar da data menor para a maior.a consulta é essa:select distinct Convert(varchar,DATA,103) from agenda where turma = 'xxx'resultado que aparece:01/06/200904/05/200908/06/200911/05/200915/06/2009como que faço para organizar essa consulta?quero que o resultado obtido pelo select seja esse:04/05/200911/05/200901/06/200908/06/200915/06/2009ou seja, da menor para a maior data.Acredito que seja simples, porém não ta dando certo.agradeço quem puder ajudar Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Setembro 9, 2009 Denunciar Share Postado Setembro 9, 2009 tenta colocar um order by no final da sua consultaselect distinct Convert(varchar,DATA,103) from agenda where turma = 'xxx' order by data Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xenofonte Postado Setembro 9, 2009 Autor Denunciar Share Postado Setembro 9, 2009 (editado) eu tentei isso ne ;P mas não da certoeu fiz isso aqui:select distinct Convert(varchar,DATA,103) data from ly_agenda where turma = 'CEAHR_N1' and disciplina = '7266-31' and ano = 2009 and semestre = 1 and num_func = '5' order by datamas ele só organiza o dia. O mês não fica ordenado.ex: fica assim:01/06/200904/05/200908/06/200911/05/200915/06/200918/05/2009;/ Editado Setembro 9, 2009 por Xenofonte Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Setembro 10, 2009 Denunciar Share Postado Setembro 10, 2009 Bom dia Amigo, O problema é q o sql realiza a conversão e depois a ordenação. Sendo assim, o sql não ordena como data, mas sim realiza uma ordenação por caracteres... por isso q apenas os dias estão ordenados. Uma duvida: na gravação das datas existe apenas a data, ou tem também hora / min / seg.? Quando você insere apenas a data no campo datetime, o sql completa com 00:00:00. Se este for o seu caso, você pode fazer um distinct sem a conversão, ok? O resultado será ordenado normalmente, e no fonte do seu aplicativo, antes da exibição dos dados, você fará a formatação da data (colocará DD/MM, ou MM/DD, retirará os zeros, etc). Caso a gravação dos dados na base tenha hora / min / seg., ai o distinct não funcionará... :.) Se este for o caso, posta aí q a gente resolve. Espero ter ajudado!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xenofonte Postado Setembro 10, 2009 Autor Denunciar Share Postado Setembro 10, 2009 (editado) Deu certo.tava ordenando pela string convertidafiz assim,select distinct Convert(varchar,DATA,103) data, data as real_data from ly_agenda where turma = 'CEAHR_N1' and disciplina = '7266-31' and ano = 2009 and semestre = 1 and num_func = '5' order by real_dataBrigadão pela ajuda!valeu! Editado Setembro 10, 2009 por Xenofonte Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Setembro 10, 2009 Denunciar Share Postado Setembro 10, 2009 É.... ai vai ter q fazer duas conversões.... :.) você converte pra data no formato dd/mm/yy (que o 103). O Sql retira os campos de hora/min/seg. Depois você converte novamente pra data, ordenando. Coloquei a alteração logo abaixo. Roda aí e depois me fala se deu certo!!! select distinct convert (Datetime,(convert (varchar,data, 103)), 103) data from ly_agenda where turma = 'CEAHR_N1' and disciplina = '7266-31' and ano = 2009 and semestre = 1 and num_func = '5' order by dataAssim também funciona. Mas o resultado virá com o dobro do tamanho. Caso este ponto seja irrelevante no contesto do aplicativo, beleza!!! :.) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Xenofonte
Estou fazendo uma consulta SQL, mas não estou conseguindo organizar da data menor para a maior.
a consulta é essa:
resultado que aparece:
01/06/2009
04/05/2009
08/06/2009
11/05/2009
15/06/2009
como que faço para organizar essa consulta?
quero que o resultado obtido pelo select seja esse:
04/05/2009
11/05/2009
01/06/2009
08/06/2009
15/06/2009
ou seja, da menor para a maior data.
Acredito que seja simples, porém não ta dando certo.
agradeço quem puder ajudar
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.