Różnice dat, operacje na datach

Różnica w dniach pomiędzy obecną data, a datą w kolumnie

TRUNC(sysdate - kolumna)

Różnica w dniach pomiędzy okresloną data, a datą w kolumnie

TO_DATE('2023-07-01') - kolumna,

Różnica w miesiącach pomiędzy obecną data, a datą w kolumnie

MONTHS_BETWEEN(sysdate, kolumna)

Dodanie miesięcy do daty

ADD_MONTHS(kolumna, ilosc_miesiecy),

Różnica dwóch dat w typu DATE wypisana w formacie gg:mm:ss.
Metoda I

to_char(to_date(trunc((data1 - to_date(data2,'yyyy-mm-dd hh24:mi:ss'))*1440*60),'sssss'),'hh24:mi:ss') as "Roznica"

Metoda II

to_char(to_date(((data1 - data2)*1440*60),'sssss'),'HH24:MI:SS') as "Roznica"

Metoda III

substr(to_char(numtodsinterval((data1 - data2),'DAY')),12,8) as "Roznica",

Metoda IV (odejmujemy od zmiennej typu TIMESTAMP(6) WITH LOCAL TIME ZONE zmienną typu DATE)

substr(to_char(max(l.log_ora_date) - cast(i.date_read as timestamp)), 12, 8) as "DIFF"

Metoda V (odejmujemy od zmiennej typu TIMESTAMP(6) WITH LOCAL TIME ZONE zmienną typu TIMESTAMP(6) WITH LOCAL TIME ZONE)

regexp_substr(to_char(d.actual_start_date - d.req_start_date),
'[0-9]{2}:[0-9]{2}:[0-9]{2}')

Rezultat:
dates

Dodanie losowej ilości minut z wybranego przedziału do bieżącej daty

select to_char(systimestamp + numtodsinterval(round(dbms_random.value(0,30),0),'MINUTE'),'HH24:MI:SS.FF3') from dual;

Tags: