1
resposta

Resolução - filtrar registros de um intervalo de datas específico

Boa noite!

SELECT * FROM
    TABELAEMPRESTIMO
WHERE
    DATAINICIO BETWEEN TO_DATE('2023-01-01', 'YYYY-MM-DD') AND TO_DATE('2023-03-31 23:59:59', 'YYYY-MM-DD HH24:MI:SS')
ORDER BY
    DATAINICIO ASC;

No cálculo do intervalo de datas utilizando BETWEEN, no termo final adicionei detalhes de horário na função TO_DATE, para assegurar que o Oracle traga para o resultado da consulta todos os registros do último dia.

Saída:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Interessante a sua solução quanto detalhe do horário no limite superior do BETWEEN. Dá para notar a atenção com um ponto importante em consultas com datas.

Uma dica interessante para o futuro é utilizar a função TRUNC() para comparar apenas a parte da data, ignorando o horário. Isso pode simplificar a consulta dependendo do cenário. Veja este exemplo:


SELECT *
FROM tabelaemprestimo
WHERE TRUNC(datainicio) BETWEEN TO_DATE('2023-01-01','YYYY-MM-DD')
AND TO_DATE('2023-03-31','YYYY-MM-DD');

Nesse caso, TRUNC(datainicio) remove a parte de hora da data, garantindo que toda comparação seja feita apenas pelo dia.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Indicações de Estudo
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!