TurboSQL Guide

Datumsformate

Previous  Top  Next

Datumskonstanten können entweder im proprietären TurboDB Format angegeben werden, das keine Anführungszeichen benötigt, oder in drei verschiedenen standardisierten Formaten. Wo lokale Datumsformate erlaubt sind, sind nur das TurboDB Format und das aktuell eingestellte lokale Format gültig. In diesen Situationen werden die drei Standard-Datumsformate nicht akzeptiert.

Das native Format ist tt.mm.jjjj. Dieses Format entspricht der natürlichen Schreibweise und kann vom Parser nicht mit einem arithmetischen Ausdruck verwechselt werden. Aus diesem Grund, ist es unnötig (sogar verboten) solch ein Datumsliteral in Anführungszeichen zu setzen. Beispiel:

SELECT * FROM orders
WHERE saledate <= 31.12.2001

sucht nach Verkäufen bis zum 31 Dezember 2001. Dieses Format ist immer gültig und wird auch immer auf dieselbe Weise interpretiert. Es ist immer dann zu bevorzugen, wenn das Datumsformat nicht an die lokalen Einstellungen des Computers angepasst werden soll.

Die in Anführungszeichen gesetzten Datumsformate sind immer dann gültig, wenn lokale Formate nicht erlaubt sind. Es gibt ein amerikanisches, ein internationales und ein europäisches Datumsformat. Dem in Anführungszeichen gesetzten String ist das Schlüsselwort DATE voranzustellen:

SELECT * FROM orders
WHERE saledate <= DATE'12/31/2001'

oder

SELECT * FROM orders
WHERE saledate <= DATE'2001-12-31'

Das deutsche Format funktioniert genauso:

SELECT * FROM orders
WHERE saledate <= DATE'31.12.2001'

Führende Nullen bei Monats- und Tagesfeldern sind optional. Wird beim Jahr nicht das Jahrhundert angegeben, wird das 20te Jahrhundert für die Jahre von 50 bis 99 und das 21te Jahrhundert für die Jahre von 00 bis 49 angenommen.

Das Schlüsselwort DATE kann entfallen, wenn der Typ der Zeichenkette wie in den beiden obigen Beispielen offensichtlich ist.

Beispiel

SELECT * FROM orders
WHERE (saledate > 1.1.89) AND (saledate <= 31.12.20)

sucht nach Verkäufen zwischen dem 1. Januar 1989 und dem 31. Dezember 2020.