Oracle get records updated in last one hour

Sirish picture Sirish · Sep 11, 2012 · Viewed 84.4k times · Source

Below is the query I am running to get updates in last one hour.

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'));

Our DB is oracle and it is failing with

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.

What is the reason for this failure?

Answer

Ted Shaw picture Ted Shaw · Sep 11, 2012

just Subtract 1/24 from sysdate to get the time of 1 hour ago

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