602SQL-Úplná dokumentace Index  

Výrazy nad datem a časem (SQL)

K hodnotám typu DATE, TIME a TIMESTAMP lze přičítat a odečítat celé číslo ve významu intervalu, lze také počítat rozdíl dvou hodnot těchto stejných typů a obdržet celé číslo.

Interval pro typ DATE vyjadřuje počet dnů, pro typ TIME počet tisícin sekundy a pro typ TIMESTAMP počet sekund. Proto například interval získaný jako rozdíl dvou hodnot typu TIME je nutno před přičtením k hodnotě typu TIMESTAMP vydělit tisícem.

Pokud prvním operandem ve výrazu je literál typu TIME nebo TIMESTAMP, pak před operátorem + nebo - je nutno uvést alespoň jednu mezeru, aby nedošlo k záměně sčítání resp. odečítání s údajem o časové zóně. V následujícím příkladu první plus označuje časovou zónu, druhé plus je operátor "přičtení tisícíny sekundy".

SET tm = 12:24:00+02 + 30*1000;

Odlišnosti od normy

Příklad použití:

Vybrat faktury za posledních deset dní, použita funkce CURRENT_DATE pro získání dnešního data

SELECT cislo,dat1
FROM Faktury
WHERE dat1 BETWEEN CURRENT_DATE-10 AND CURRENT_DATE