Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » SQL-Datentypen » Datentypkonvertierungen » Vergleiche zwischen Datentypen

 

Datums- und Zeitangaben vergleichen

Standardmäßig haben als DATE gespeicherte Werte keine Stunden- oder Minutenwerte, daher lassen sich Datumsangaben direkt vergleichen.

Der DATE-Datentyp kann auch eine Uhrzeit enthalten, was zu Komplikationen bei Vergleichen von Datumsangaben führt. Wenn die Zeit bei der Eingabe des Datums in die Datenbank nicht eingegeben wird, setzt das System die Zeit auf den Standardwert von 0:00 oder 12:00am (Mitternacht). Vergleiche von Datumsangaben mit dieser Optionseinstellung vergleichen Zeit- und Datumsangaben. Ein Datenbank-Datumswert von '1999-05-23 10:00' ist nicht gleich der Konstanten '1999-05-23'. Die Funktion DATEFORMAT oder eine der anderen Datumsfunktionen können benutzt werden, um Vergleiche mit Datums- oder Zeitfeldern durchzuführen. Zum Beispiel:

DATEFORMAT(invoice_date,'yyyy/mm/dd') = '1999/05/23';

Wenn eine Datenbankspalte nur eine Datumsangabe benötigt, müssen Clientanwendungen dafür Sorge tragen, dass die Uhrzeiten bei der Eingabe von Datumswerten in die Datenbank nicht angegeben werden. Auf diese Weise wird gewährleistet, dass Vergleiche mit reinen Datumszeichenfolgen in der erwarteten Form funktionieren.

Wenn Sie ein Datum mit einer Zeichenfolge als Zeichenfolge vergleichen wollen, müssen Sie die Funktion DATEFORMAT oder CAST verwenden, um das Datum vor dem Vergleich in eine Zeichenfolge umzuwandeln.

SQL Anywhere verwendet folgende Regeln, um Vergleiche zwischen Datentypen für Datum und Uhrzeit durchzuführen. Die Regeln werden in der aufgeführten Reihenfolge durchsucht. Die erste zutreffende Regel wird angewendet:

  1. Wenn der Datentyp eines der Argumente TIME ist, werden beide in TIME konvertiert und verglichen.

  2. Wenn einer der Datentypen den Typ DATE oder TIMESTAMP hat, werden beide in TIMESTAMP konvertiert und verglichen.

    Wenn beispielsweise die beiden Argumente vom Datentyp REAL und DATE sind, werden sie beide in TIMESTAMP konvertiert.

  3. Wenn ein Argument NUMERIC und das andere SMALLINT ist, werden beide in DOUBLE konvertiert und verglichen.

 Siehe auch