DATEDIFF()
DSQL, PSQL
BIGINT
, oder — seit Firebird 4.0.1 — NUMERIC(18,1)
für MILLISECOND
DATEDIFF (<args>) <args> ::= <unit> FROM <moment1> TO <moment2> | <unit>, <moment1>, <moment2> <unit> ::= YEAR | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND | MILLISECOND <momentN> ::= ein DATE-, TIME- oder TIMESTAMP-Ausdruck
Parameter | Beschreibung |
---|---|
unit |
Datum/Uhrzeit-Einheit |
moment1 |
Ein Ausdruck vom Typ |
moment2 |
Ein Ausdruck vom Typ |
Gibt die Anzahl der Jahre, Monate, Wochen, Tage, Stunden, Minuten, Sekunden oder Millisekunden zurück, die zwischen zwei Datums-/Uhrzeitwerten verstrichen sind.(Die Einheit WOCHE
ist neu in 2.5.)
-
Die Argumente
DATE
undTIMESTAMP
können kombiniert werden.Andere Mischungen sind nicht erlaubt. -
Mit den Argumenten
TIMESTAMP
undDATE
können alle Einheiten verwendet werden.(Vor Firebird 2.5 waren Einheiten, die kleiner alsDAY
waren, fürDATE
s nicht zulässig.) -
Bei
TIME
-Argumenten können nurHOUR
,MINUTE
,SECOND
undMILLISECOND
verwendet werden.
-
DATEDIFF
betrachtet keine kleineren Einheiten als die im ersten Argument angegebene.Als Ergebnis,-
datediff (Jahr, Datum '1-Jan-2009', Datum '31-Dez-2009')
gibt 0 zurück, aber -
`datediff (Jahr, Datum '31-Dez-2009', Datum '1-Jan-2010')' gibt 1 zurück
-
-
Es betrachtet jedoch alle größeren Einheiten. So:
-
`datediff (Tag, Datum '26-Jun-1908', Datum '11-Sep-1973')' gibt 23818 zurück
-
-
Ein negativer Ergebniswert bedeutet, dass moment2 vor moment1 liegt.