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