Datetime-Literale
Formal definiert der SQL-Standard Datetime-Literale als Präfix DATE
, TIME
und TIMESTAMP
gefolgt von einem String-Literal mit einem Datetime-Format.Historisch gesehen hat die Firebird-Dokumentation diese Datetime-Literale als "Shorthand Casts" bezeichnet.
In Firebird 4.0 ist die Verwendung von Datum/Uhrzeit-Mnemonik in Datetime-Literalen (z.B. DATE 'TODAY'
) nicht mehr erlaubt.
Caution
|
Das Format von Datetime-Literalen und -Strings in Firebird 4.0 ist im Vergleich zu früheren Firebird-Versionen strenger. |
<datetime_literal> ::= DATE '<date_format>' | TIME { '<time_format>' | '<time_tz_format>' } | TIMESTAMP { '<timestamp_format>' | '<timestamp_tz_format>' }
<date_format> ::= [YYYY<p>]MM<p>DD | MM<p>DD[<p>{ YYYY | YY }] | DD<p>MM[<p>{ YYYY | YY }] <time_format> ::= HH[:mm[:SS[<f>NNNN]]] <timestamp_format> ::= <date_format> [<space> <time_format>] <time_zone> ::= { + | - }HH:MM | time zone name (e.g. Europe/Berlin) <time_tz_format> ::= <time_format> [<space>] <time_zone> <timestamp_tz_format> ::= <timestamp_format> [<space>] <time_zone> <p> ::= whitespace | . | - | / <f> ::= : | .
Argument | Beschreibung |
---|---|
datetime_literal |
Datetime-Literal |
date_format |
Format des Datums |
time_format |
Format der Zeit |
timestamp_format |
Format des Zeitstempels |
time_zone |
Format der Zeitzone |
time_tz_format |
Format der Zeit mit Zeitzone |
timestamp_tz_format |
Format des Zeitstempels mit Zeitzone |
YYYY |
Vierstelliges Jahr |
YY |
Zweistelliges Jahr |
MM |
MonatEs kann 1 oder 2 Ziffern enthalten (1-12 oder 01-12).Sie können auch den aus drei Buchstaben bestehenden Kurznamen oder den vollständigen Namen eines Monats in Englisch angeben.Groß-/Kleinschreibung nicht beachten |
DD |
Tag.Dieser kann 1 oder 2 Ziffern enthalten (1-31 oder 01-31) |
HH |
Stunde.Diese kann 1 oder 2 Ziffern enthalten (0-23 oder 00-23) |
mm |
Minuten.Diese können 1 oder 2 Ziffern enthalten (0-59 oder 00-59) |
SS |
Sekunden.Diese können 1 oder 2 Ziffern enthalten (0-59 oder 00-59) |
NNNN |
Zehntausendstelsekunden.Diese können 1 bis 4 Ziffern (0-9999) enthalten. |
p |
Ein Datumstrennzeichen, eines der zulässigen Zeichen.Führende und nachgestellte Leerzeichen werden ignoriert.Die Wahl des Trennzeichens in einem Datum entscheidet, ob der Parser |
f |
Sekundenbruchteil-Trennzeichen |
Important
|
Die Verwendung der vollständigen Jahresangabe in vierstelliger Form — |
-- 1
UPDATE PEOPLE
SET AGECAT = 'SENIOR'
WHERE BIRTHDATE < DATE '1-Jan-1943';
-- 2
INSERT INTO APPOINTMENTS
(EMPLOYEE_ID, CLIENT_ID, APP_DATE, APP_TIME)
VALUES (973, 8804, DATE '1-Jan-2021' + 2, TIME '16:00');
-- 3
NEW.LASTMOD = TIMESTAMP '1-Jan-2021 16:00';
Tip
|
Obwohl die Firebird-Datetime-Syntax sehr flexibel ist, empfehlen wir zur Vermeidung von Mehrdeutigkeiten die ISO-8601-Reihenfolge (Jahr-Monat-Tag), ‘ Kurz gesagt, verwenden Sie |