Die Syntax für Zeitliterale ist wie folgt definiert:
zeit_literal ::=
{
DATE '
jahr-monat-tag ' |
TIME '
stunde:minute:sekunde ' |
TIMESTAMP'
jahr-monat-tag stunde:minute:sekunde '
}
DATE
Datum. Der Datentyp des Zeitliterals ist DATE.
TIME
Uhrzeit. Der Datentyp des Zeitliterals ist TIME(3).
TIMESTAMP
Zeitstempel. Der Datentyp des Zeitliterals ist TIMESTAMP(3).
jahr
Vierstellige vorzeichenlose Ganzzahl zwischen 0001 und 9999, die das Jahr angibt.
monat
Zweistellige vorzeichenlose Ganzzahl zwischen 01 und 12, die den Monat angibt.
tag
Zweistellige vorzeichenlose Ganzzahl zwischen 01 und 31 (passend zu Monat und Jahr), die den Tag angibt.
stunde
Zweistellige vorzeichenlose Ganzzahl zwischen 00 und 23, die die Stunde angibt.
minute
Zweistellige vorzeichenlose Ganzzahl zwischen 00 und 59, die die Minute angibt.
sekunde
Vorzeichenlose Festpunktzahl zwischen 00.000 und 60.999, die die Sekunde und die Sekundenbruchteile angibt. Die Angabe für die Sekunden muss zweistellig, die Angabe für die Sekundenbruchteile muss dreistellig sein. Der Wertebereich erlaubt die Angabe von einer Schaltsekunde.
Eine Datumsangabe muss die Regeln des Gregorianischen Kalenders erfüllen, auch wenn sie ein Datum vor Einführung des Gregorianischen Kalenders bezeichnet.
SESAM/SQL erlaubt eine verkürzte Schreibweise, ohne einleitendes Zeit-Schlüsselwort, wenn aus dem Kontext unmittelbar hervorgeht, dass es sich um ein Zeitliteral handelt und nicht um ein alphanumerisches Literal.
Beispiele
Aus der Tabelle AUFTRAG alle Aufträge ausgeben, die vor dem angegebenen Datum erledigt wurden.
SELECT * FROM auftrag WHERE fertigist < '2013-01-01'
Die Spalte FERTIGIST wurde beim Erzeugen der Tabelle mit Datentyp DATE definiert. Aus dem linken Vergleichsoperanden geht daher unmittelbar hervor, dass es sich bei dem angegebenen Literal um ein Zeitliteral handelt. Auf der rechten Seite kann somit das Schlüsselwort DATE entfallen.
Literal in der SELECT-Liste.
SELECT COUNT(*) AS anzahl, '2013-01-01' AS datum FROM auftrag
Die Ergebnistabelle enthält eine Zeile mit der Anzahl der Aufträge und mit der Spalte DATUM. Der Datentyp ergibt sich aus dem angegebenen Ausdruck. Also hat die Spalte DATUM den Datentyp CHAR(10).
Um Fehlerquellen auszuschließen, wird empfohlen, Zeitliterale stets mit einleitendem Zeit-Schlüsselwort (DATE, TIME, TIMESTAMP) anzugeben.