programing

SQL: 특정 날짜에 대한 시간 범위에서 작성된 레코드 가져오기

goodsources 2023. 8. 14. 22:49
반응형

SQL: 특정 날짜에 대한 시간 범위에서 작성된 레코드 가져오기

저는 지난주에 만들어진 일련의 기록들을 가지고 있는데, 그 중에서 6시간 45분에서 19시간 15분 사이에 만들어진 기록들만 검색하고 싶습니다.칼럼이 있습니다.creation_date내가 쓸 수 있는.

sql에서 어떻게 해야 합니까?

오라클에서는 날짜를 숫자로 변환하고 다양한 방법으로 산술을 적용할 수 있습니다.

예를 들어.sysdate-77일 전의 날짜를 알려줍니다trunc(some_date)날짜 열에서 시간 요소를 제거합니다.to_char(some_date, 'SSSSS')는 자정 이후의 시간 요소를 초 단위로 제공합니다.따라서 06:45:00은 24300초이고 18:15:59는 69359초입니다. (이 숫자들은 봉투의 뒷면이므로 확인해 주십시오.)

어쨌든, 이 모든 것을 이렇게 하나의 질문으로 정리하면...

select *
from your_table
where creation_date >= trunc(sysdate)-7
and to_number(to_char(creation_date, 'sssss')) between 24300 and 69359

코어 시간 내에 시간 요소를 사용하여 지난 주에 생성된 모든 레코드를 생성합니다.

이 쿼리는 작성 날짜가 오전 6:45에서 오후 7:15 사이인 지난 7일 동안 작성된 레코드를 반환합니다.

select * 
  from your_table
 where creation_date > sysdate - 7
   and to_char(creation_date, 'hh24:mi:ss') >= '06:45:00' 
   and to_char(creation_date, 'hh24:mi:ss') <= '19:15:00' 

위의 기준에 따라 일요일과 토요일 사이의 마지막 주 기록이 06:45:00과 19:15:59 시간에 반환됩니다.

예를 들어 월요일부터 일요일까지 주 범위를 변경하려면 "-7"과 "+6"을 다른 숫자로 조정할 수 있습니다.

select * 
from your_table
where creation_date >= TRUNC(SYSDATE, 'WW') - 7
and creation_date <= (TRUNC(SYSDATE, 'WW') - 7) + 6
and to_char(creation_date, 'hh24:mi:ss') >= '06:45:00' 
and to_char(creation_date, 'hh24:mi:ss') <= '19:15:00'

언급URL : https://stackoverflow.com/questions/9568787/sql-get-records-created-in-time-range-for-specific-dates

반응형