Dúvida no filtro [RESOLVIDO]

1. Dúvida no filtro [RESOLVIDO]

Diogo
diogo_flash

(usa Ubuntu)

Enviado em 12/01/2021 - 08:11h

Bom dia. Estou tentando filtrar um registro no meu banco de dados. Porém não estou conseguindo. Minha estrutura do banco é essa (1.png). Porém, quando tendo filtrar usando:


SELECT * FROM log WHERE data_hora = 'Fri Jan 8 15:49:52 2021'


Ela me retorna vazio.




  


2. Re: Dúvida no filtro [RESOLVIDO]

Diogo
diogo_flash

(usa Ubuntu)

Enviado em 12/01/2021 - 08:13h

Meus registros que estão no banco são essas



3. Re: Dúvida no filtro [RESOLVIDO]

Ruan
ru4n

(usa Debian)

Enviado em 12/01/2021 - 08:53h

Porque o campo "data_hora" é uma string (varchar), e não um DATETIME?



4. Re: Dúvida no filtro [RESOLVIDO]

5. Re: Dúvida no filtro [RESOLVIDO]

Diogo
diogo_flash

(usa Ubuntu)

Enviado em 12/01/2021 - 10:41h

ru4n escreveu:

Porque o campo "data_hora" é uma string (varchar), e não um DATETIME?


Porque estou lendo os dados de um arquivo log. Dai tem as datas e horas nela.


6. Re: Dúvida no filtro [RESOLVIDO]

Diogo
diogo_flash

(usa Ubuntu)

Enviado em 12/01/2021 - 10:53h



Perfeito. Deu certo seguindo esse link. Eu já estava pensando em converter de string para datatime para testar.
Obrigado pela ajuda pessoal.




7. Re: Dúvida no filtro [RESOLVIDO]

Ruan
ru4n

(usa Debian)

Enviado em 12/01/2021 - 10:54h


diogo_flash escreveu:

Porque estou lendo os dados de um arquivo log. Dai tem as datas e horas nela.


O ideal é vc transformar esses dados que vem do log para o tipo correto antes de fazer insert no banco. Se a data vem exatamente dessa forma do log:
Fri Jan  8 15:49:52 2021 


Vc pode transformar esse dado em um datetime da seguinte forma (em bash):
d=$(date -d 'Fri Jan  8 15:49:52 2021' '+%Y-%m-%d %H:%M:%S') 


Resultado:
$ echo $d
2021-01-08 15:49:52


Com isso, vc insere a data correta no banco com o tipo datetime e consegue fazer as validações com SQL corretamente.


8. Re: Dúvida no filtro [RESOLVIDO]

Diogo
diogo_flash

(usa Ubuntu)

Enviado em 16/01/2021 - 09:50h

ru4n escreveu:


diogo_flash escreveu:

Porque estou lendo os dados de um arquivo log. Dai tem as datas e horas nela.


O ideal é vc transformar esses dados que vem do log para o tipo correto antes de fazer insert no banco. Se a data vem exatamente dessa forma do log:
Fri Jan  8 15:49:52 2021 


Vc pode transformar esse dado em um datetime da seguinte forma (em bash):
d=$(date -d 'Fri Jan  8 15:49:52 2021' '+%Y-%m-%d %H:%M:%S') 


Resultado:
$ echo $d
2021-01-08 15:49:52


Com isso, vc insere a data correta no banco com o tipo datetime e consegue fazer as validações com SQL corretamente.


Perfeito. Funcionou também.
Obrigado à todos.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts