sql >> Database teknologi >  >> RDS >> Oracle

Hvordan kan jeg få forskellen i timer mellem to datoer?

Fejlen skyldes, at SYSDATE allerede er en dato, der er ingen grund til at bruge TO_DATE() for at konvertere det til en dato.

Hvis du ikke konverterer det til en dato:

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

Og hvis formateringen af ​​datoerne er forkert, kan du eventuelt bruge to trin 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. Er det bedre at bruge en unik identifikator (GUID) eller en bigint til en identitetskolonne?

  2. 'IF' i 'SELECT'-sætning - vælg outputværdi baseret på kolonneværdier

  3. Kalder du et REST API fra en trigger eller lagret procedure i mysql?

  4. Afklaring af sammenføjningsordre for oprettelse af midlertidige tabeller