반응형
같은 날짜 사이의 데이터 쿼리
이런 일이 가능할까요?
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
반응형
'programing' 카테고리의 다른 글
같은 클래스에 있는 다른 개체의 개인 필드에 액세스합니다. (0) | 2022.11.25 |
---|---|
__construct는 무엇에 사용됩니까? (0) | 2022.11.25 |
mysql - aria 제어 파일을 잠글 수 없습니다. (0) | 2022.11.25 |
PDO 쿼리 vs 실행 (0) | 2022.11.25 |
MySQL 쿼리에서 n번째 레코드 반환 (0) | 2022.11.25 |