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
DATEundTIMESTAMPkönnen kombiniert werden.Andere Mischungen sind nicht erlaubt. -
Mit den Argumenten
TIMESTAMPundDATEkönnen alle Einheiten verwendet werden.(Vor Firebird 2.5 waren Einheiten, die kleiner alsDAYwaren, fürDATEs nicht zulässig.) -
Bei
TIME-Argumenten können nurHOUR,MINUTE,SECONDundMILLISECONDverwendet werden.
-
DATEDIFFbetrachtet 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.