web-dev-qa-db-fra.com

Oracle obtient les enregistrements mis à jour au cours de la dernière heure

Vous trouverez ci-dessous la requête que j'exécute pour obtenir des mises à jour au cours de la dernière heure.

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

Notre base de données est Oracle et il échoue avec

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.

Quelle est la raison de cet échec?

11
Poorna

il suffit de soustraire 1/24 de sysdate pour obtenir le temps d'il y a 1 heure

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