programing

같은 날짜 사이의 데이터 쿼리

javaba 2022. 11. 25. 21:10
반응형

같은 날짜 사이의 데이터 쿼리

이런 일이 가능할까요?

select * from table where Date BETWEEN '2019-05-29' AND '2019-05-29'

네, 가능합니다.시간 파트가 있는 경우 함수를 사용하여 건너뛸 수 있습니다.

SELECT * FROM table WHERE DATE(Date) BETWEEN '2019-05-29' AND '2019-05-29'
-- it may degrade performance, condition is not SARGable

네, 하지만 더 나은 접근법은 다음과 같습니다.

select t.*
from table t
where t.Date >= date('2019-05-29') AND 
      t.Date < date('2019-05-29') + interval 1 day

왜 이게 더 나을까?열 이름에는 함수가 없기 때문에, 이 열 이름에는 인덱스를 사용할 수 있습니다.date기둥.

예, 코드 내에서 날짜를 수동으로 변경하지 않고 테스트 창에서 실행하려는 경우 이를 변수로 설정할 수 있습니다.trunk를 사용하여 시간을 제거합니다. 즉, 29-05-2019 23:59:00는 없습니다.일정 기간 내에 동일한 날짜를 사용하려면 트렁크를 제거한 후 시간-분-초를 설정하면 조회가 보다 정밀해집니다.

SELECT t.*
FROM table t
WHERE t.date BETWEEN trunc(to_date(:datefrom, 'dd.mm.yyyy hh24:mi:ss')) AND
                     trunc(to_date(:dateto, 'dd.mm.yyyy hh24:mi:ss'))

언급URL : https://stackoverflow.com/questions/56633959/query-data-between-the-same-date

반응형