ORDER BY data em formato VARCHAR [RESOLVIDO]

1. ORDER BY data em formato VARCHAR [RESOLVIDO]

leone
leoneh

(usa Debian)

Enviado em 30/04/2015 - 09:10h

Meu problema começa quando faço uma consulta e coloco para ordenar como "DESC"

EX: 22-05-2015
20-04-2015
05-04-2015
02-05-2015


Gostaria que ficasse assim
22-05-2015
02-05-2015
20-04-2015
05-04-2015


  


2. MELHOR RESPOSTA

Hugo Cerqueira
hrcerq

(usa Outra)

Enviado em 01/05/2015 - 14:48h

Entendo. Primeiro peço desculpas porque na consulta anterior que te mandei eu não coloquei a cláusula ORDER BY, portanto ela não traria o resultado correto mesmo.

Segundo, para ajustar a formatação, você poderia mudar a consulta para trazer as datas como Varchar mesmo, mas somente na ordenação fazer a conversão para data, veja:

SELECT
clientes.`Data`,
COUNT(clientes.`Data`)
FROM clientes
GROUP BY clientes.`Data`
ORDER BY STR_TO_DATE(clientes.`Data`,'%d-%m-%Y') DESC

---

Atenciosamente,
Hugo Cerqueira

3. Re: ORDER BY data em formato VARCHAR [RESOLVIDO]

Hugo Cerqueira
hrcerq

(usa Outra)

Enviado em 30/04/2015 - 14:40h

Boa tarde, Leone.

Não entendi muito bem o que está acontecendo. Você está recebendo uma mensagem de erro ou está recebendo um resultado que não é o desejado?

Fica um pouco difícil saber a causa do problema sem ver o comando que você está executando e sem saber a estrutura da tabela na qual está realizando a consulta, por isso vou pedir que poste o comando SQL que você está executando para podermos identificar o problema. Se estiver recebendo mensagem de erros, poste a mensagem também.

---

Atenciosamente,
Hugo Cerqueira


4. Re: ORDER BY data em formato VARCHAR [RESOLVIDO]

leone
leoneh

(usa Debian)

Enviado em 30/04/2015 - 18:59h


Boa Tarde.

No caso eu estou tendo um resultado não desejado.

Eu tenho um banco de dados => empresa, uma tabela => clientes e duas colunas VARCHAR => nome e data.


SELECT clientes.`Data`, COUNT( clientes.`Data`)
FROM clientes
GROUP BY clientes.`Data`DESC


Usei esses comandos para obter quantos agendamentos tem para uma data e ordenar por ordem cronológica ficando em cima as datas maiores. porém como minhas datas estão em varchar e no formato dia-mês-ano o comando começa a comparar na ordem dia-mês-ano, com isso a data 05-04-2015 fica acima da 02-05-2015 pois "05" é maior que "02" o'que não seria correto tendo em vista que para ficar do jeito que quero deve se colocar os anos e meses maiores acima..


5. Re: ORDER BY data em formato VARCHAR [RESOLVIDO]

Hugo Cerqueira
hrcerq

(usa Outra)

Enviado em 30/04/2015 - 20:57h

Entendi. Neste caso, tudo o que você precisa fazer é converter o campo de data, que no caso é VARCHAR para um campo de data de verdade, usando a função STR_TO_DATE. Veja a consulta que poderia fazer:

SELECT
STR_TO_DATE(clientes.`Data`,'%d-%m-%Y'),
COUNT( clientes.`Data`)
FROM clientes
GROUP BY clientes.`Data`DESC


Aqui está a referência técnica da função STR_TO_DATE, caso queira saber mais:
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

Espero ter ajudado.

---

Atenciosamente,
Hugo Cerqueira


6. Re: ORDER BY data em formato VARCHAR [RESOLVIDO]

leone
leoneh

(usa Debian)

Enviado em 01/05/2015 - 13:53h

Funcionou + ou - pois deu dois probleminhas

EX: como ORDER ASC
2015-06-02
2015-05-05
2015-05-18
2015-04-20.
2015-04-22

1° Problema foi que ficou invertido" ano-mês-dIa" ao invés de "dia-mês-ano.
2° Problema foi que na hora de comparar as datas "2015-05-05" e "2015-05-18" o dia 05 ficou na frente do 18.

EX como ORDER DESC
2015-04-22
2015-04-20.
2015-05-18
2015-05-05
2015-06-02

ficou assim
SELECT str_to_date(clientes.`Data`, '%d-%m-%Y') AS ' Data', COUNT( clientes.`Data`)
FROM clientes
GROUP BY clientes.`Data` DESC

Acredito que isso aconteceu pois ele passou a comparar os valores da diteira para a esquerda mas não adiantou porque tmb inverteu os formatos das datas.


7. Re: ORDER BY data em formato VARCHAR [RESOLVIDO]

leone
leoneh

(usa Debian)

Enviado em 01/05/2015 - 15:03h

Vlw, Muito Obrigado, agora funcionou perfeitamente.


8. Re: ORDER BY data em formato VARCHAR [RESOLVIDO]

Hugo Cerqueira
hrcerq

(usa Outra)

Enviado em 01/05/2015 - 15:36h

leoneh escreveu:

Vlw, Muito Obrigado, agora funcionou perfeitamente.


Que bom!
Por favor, marque o tópico como resolvido e também a melhor resposta.

---

Atenciosamente,
Hugo Cerqueira






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts