Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Outra forma de filtrar os dados através da coluna de data + dúvida de performance

Olá, podemos filtrar os dados pela data usando a clausula 'like' também, correto?

Código utilizado no curso:

select p.id, p.idcliente from pedidos p where strftime('%m', p.datahorapedido = '10')

Código com a clausula like:

select p.id, p.idcliente from pedidos p where p.datahorapedido like '2023-10%'

Acredito que em termos de desempenho, o like '2023-10%' tem maior probabilidade de ser mais eficiente ou não necessariamente? Sei que depende de vários fatores, incluindo o tamanho da tabela/dados... Pode me tirar essa dúvida? Relacionado a perfomance da query?

1 resposta
solução!

Boa tarde, Vinicius, tudo bem?

Quando se trata de filtrar dados por data, a cláusula LIKE não é a abordagem mais eficiente. Embora possa funcionar em alguns casos, não é ideal para trabalhar com datas por várias razões:

1 - Semântica incorreta: A cláusula LIKE é usada principalmente para corresponder a padrões de strings, não para operações de comparação de datas. Embora você possa usar para comparar parte de uma string de data, pode levar a resultados inesperados devido a diferenças em formatos de datas, como no caso de formatos diferentes de datas ou horários.

2 - Índices: A maioria dos bancos de dados otimiza consultas de data quando você usa operadores de comparação diretamente, como =, <, >, etc. Isso permite que o banco de dados use índices de data para acelerar a consulta. No entanto, o uso do LIKE pode impedir que o banco de dados use esses índices, resultando em uma consulta mais lenta, especialmente em tabelas grandes.

3 - Legibilidade do código: Usar operadores de comparação como = é mais semântico e claro para outros desenvolvedores que possam revisar ou manter o código no futuro.

Portanto, é recomendável usar operadores de comparação direta, como = ou >=, para filtrar por datas sempre que possível, em vez de usar LIKE. Isso geralmente resultará em consultas mais eficientes e claras. Se necessário, você pode manipular a data para corresponder ao formato desejado antes de fazer a comparação, em vez de usar LIKE.

Espero ter ajudado. At.te:

Eduardo Rafael Cardoso