Modifikace sysdate v Oracle SQL

Oracle funkce sysdate vrací aktuální datum a čas databáze. Používá například při zjišťování, zda daný záznam je platný či ne.

SELECT * FROM tabulka WHERE datum < sysdate

Často ale potřebujeme zjistit záznam, který je např. starší než aktuální datum plus/mínus X dní/hodin/minut/… Pokud napíšeme:

SELECT SYSDATE, SYSDATE - 60 FROM dual;

bude výsledek následující:

SYSDATE                SYSDATE-60
12.07.17 11:22:36      13.05.17 11:22:36

To je docela nepřehledné, protože ne každý může vědět, že se odečítají dny. Mnohem lepší je:

SELECT SYSDATE, SYSDATE - INTERVAL '60' DAY AS sysdate_minus_60_days FROM dual;

který vrací stejný výsledek, ale je mnohem jasnější, jaká časová hodnota se modifikuje (INTERVAL ’60‘ DAY):

SYSDATE                SYSDATE_MINUS_60_DAYS
12.07.17 11:25:00      13.05.17 11:25:00

Je samozřejmě možné přidávat a odebírat nejen dny, ale i jiné časové úseky (second, minute, hour, day, month, year).

SELECT SYSDATE, SYSDATE + INTERVAL '5' MINUTE AS sysdate_plus_5_minutess FROM dual;

Výsledek

SYSDATE                SYSDATE_PLUS_5_MINUTES
12.07.17 11:26:34      12.07.17 11:31:34

Napsat komentář