त्रुटि इसलिए है क्योंकि SYSDATE पहले से ही एक तिथि है, TO_DATE()
का उपयोग करने की कोई आवश्यकता नहीं है इसे एक तिथि में बदलने के लिए।
यदि आप इसे किसी तिथि में परिवर्तित नहीं करते हैं:
select
24 * (sysdate - to_date('2012-02-28 15:20', 'YYYY-MM-DD hh24:mi')) as diff_hours
from dual;
और यदि तिथियों का प्रारूपण गलत है, तो आप दो चरणों का उपयोग कर सकते हैं जैसे:
select
24 * (to_date(to_char(sysdate, 'YYYY-MM-DD hh24:mi'), 'YYYY-MM-DD hh24:mi') - to_date('2012-02-28 15:20', 'YYYY-MM-DD hh24:mi')) as diff_hours
from dual;