sql >> Databasteknik >  >> RDS >> Oracle

Hur kan jag få skillnaden i timmar mellan två datum?

Felet beror på att SYSDATE redan är ett datum, det finns ingen anledning att använda TO_DATE() för att konvertera det till ett datum.

Om du inte konverterar det till ett datum:

select
    24 * (sysdate - to_date('2012-02-28 15:20', 'YYYY-MM-DD hh24:mi')) as diff_hours
from dual;

Och om formateringen av datumen är fel kan du använda två steg som:

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;


  1. Heroku pg:backups återställning misslyckas på grund av Rails-applikationens timeout

  2. Hur man konverterar datum i .csv-fil till SQL-format innan massinsättning

  3. Lagring av SqlServers raiserror-meddelande i C#

  4. SQL-tillstånd:42883, Ingen funktion matchar givna namn och argumenttyper. Men den funktionen finns faktiskt