Fórum Select entre datas SQL #581005
05/05/2017
0
Estou com uma dificuldade. Mas é uma dúvida do que uma dificuldade.
Estou fazendo um SELECT (com PHP) entre duas datas.
Ex.:
SELECT idFrequencia FROM frequencias WHERE dataChamada >= '06/02/2017' AND dataChamada <= '20/04/2017'.
No meu BD, a coluna da tabela está em formato TEXT. Então, quando o SQL é executado, alguns resultados acabam sendo exibidos, mas porque ele não está 'entendendo' a consulta.
A dúvida é seguinte:
Se eu utilizar TEXT na coluna do BD, pode dar problema no formato de data quando o SQL for executado?
Como resolvo esse problema convertendo as datas?
João Ferlini
Curtir tópico
+ 0Post mais votado
05/05/2017
SELECT
idFrequencia
FROM
frequencias
WHERE
DATE_FORMAT(STR_TO_DATE(dataChamada , '%d/%m/%Y'), '%Y-%m-%d')
>= '2017-02-06'
AND DATE_FORMAT(STR_TO_DATE(dataChamada , '%d/%m/%Y'), '%Y-%m-%d')
<= '2017-04-20'
DATE_FORMAT(STR_TO_DATE(data, '%d/%m/%Y'), '%Y-%m-%d')
Só ressaltando que quando o campo data é texto o correto é você fazer a conversão para o padrão américa para fazer a comparação.dd/MM/yyyy.
Note que 01/12/2017 quando comparado se é maior que 10/02/2017, está errado, pois no caso está comparando texto, e o mysql vai tentar converter pra inteiro, logo 01122017 não é maior que 10022017, agora se você inverter para o padrão americano vai que 20171201 é maior que 20170210. Fica a dica.
Fabio Parreira
Gostei + 1
Mais Posts
05/05/2017
Luiz Santos
Qual banco você está usando?
Grande abs
Gostei + 0
05/05/2017
Jones Granatyr
Gostei + 0
05/05/2017
João Ferlini
Gostei + 0
05/05/2017
João Ferlini
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)