programing

Oracle이 최근 1시간 내에 업데이트된 레코드 가져오기

muds 2023. 6. 25. 20:36
반응형

Oracle이 최근 1시간 내에 업데이트된 레코드 가져오기

다음은 최근 1시간 동안 업데이트를 받기 위해 실행 중인 쿼리입니다.

select count(*) 
from my_table 
where last_updated_date between to_date(to_char(sysdate,'YYYY-MM-DD HH24'))-1/24 and to_date(to_char(sysdate,'YYYY-MM-DD HH24'));

우리의 DB는 오라클이며 다음과 같이 실패하고 있습니다.

ORA-01861: literal does not match format string
01861. 00000 -  "literal does not match format string"
*Cause:    Literals in the input must be the same length as literals in
           the format string (with the exception of leading whitespace).  If the
           "FX" modifier has been toggled on, the literal must match exactly,
           with no extra whitespace.
*Action:   Correct the format string to match the literal.

이 실패의 원인은 무엇입니까?

시스템 날짜에서 1/24를 빼면 1시간 전의 시간을 얻을 수 있습니다.

select count(*) from my_table where last_updated_date >= (sysdate-1/24)

db 사용자가 sysdate에 액세스할 수 없는 경우 다른 방법이 있습니다.

select count(*) from my_table where last_updated_date >= CURRENT_TIMESTAMP - INTERVAL '3600' SECOND

변수에 따라 SECURN에서 HOURS MINESS 등의 날짜 및 시간을 변경할 수 있습니다.

언급URL : https://stackoverflow.com/questions/12364999/oracle-get-records-updated-in-last-one-hour

반응형