TurboSQL Guide

DateTime Format

Previous  Top  Next

Zeitstempel-Formate (TimeStamp oder DateTime) können entweder im proprietären TurboDB Format angegeben werden, das keine Anführungszeichen benötigt (dd.mm.yyyy_hh:mm:ss), 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 für DateTime Literale setzt sich aus einem Datums- und Zeitanteil zusammen, getrennt duch einen Unterstrich. Anführungszeichen können optional gesetzt werden.

SELECT * FROM WorkOrder
WHERE StartTime >= 31.1.2001_14:10:00

oder

SELECT *
FROM WorkOrder
WHERE StartTime >= '31.1.2001_14:10:00'

Dieses Format ist immer gültig und wird auch immer auf dieselbe Weise interpretiert. Es ist immer dann zu bevorzugen, wenn das TimeStamp-Format nicht an die lokalen Einstellungen des Computers angepasst werden soll.

Eine andere Möglichkeit ist es ein DateTime in einfache Anführungszeichen zu setzen und das Schlüsselwort TIMESTAMP voranzustellen. Auch hier gibt es drei verschiedene Möglichkeiten der Darstellung:

Das amerikanische Format

SELECT * FROM WorkOrder
WHERE StartTime >= TIMESTAMP'1/31/2001 2:10:00 pm'

Das internationale Format:

SELECT * FROM WorkOrder
WHERE StartTime >= TIMESTAMP'2001-1-31 14:10:00'

Das europäische Format:

SELECT * FROM WorkOrder
WHERE StartTime >= TIMESTAMP'31.1.2001 14:10:00'

Wenn, wie in den obigen Beispielen, die Natur der DateTime-Zeichenkette  eindeutig ist, kann das Schlüsselwort TIMESTAMP weggelassen werden.

Hinweis
Die erste Variante mit dem nativen Format ohne umschließende Klammer kann mit der Delphi-Komponente TTdbQuery nicht benutzt werden. Der VCL-Parser für SQL-Befehle interpretiert den Doppelpunkt als Startzeichen eines Parameters. Sie können diesen entweder löschen oder einfach ignorieren, das Statement wird in jedem Fall korrekt ausgeführt.