SQL Anywhere konvertiert automatisch eine Zeichenfolge in ein Datum, wenn ein Datumswert erwartet wird, auch wenn das Jahr in der Zeichenfolge nur durch zwei Stellen dargestellt ist.
Wenn der Jahrhundertteil einer Jahresangabe weggelassen wird, wird die Methode für die Konvertierung durch die nearest_century-Datenbankoption bestimmt.
Die nearest_century-Datenbankoption ist ein nummerischer Wert, der als Bruchstelle zwischen Datumswerten mit 19JJ und 20JJ fungiert.
Zweistellige Jahre unter dem nearest_century-Wert werden in 20JJ konvertiert, während Jahre größer als derWert oder gleich dem Wert in 19JJ konvertiert werden.
Wenn diese Option nicht gesetzt ist, wird die Standardzeichenfolge 50 herangezogen. Zweistellige Jahresangaben werden also als Jahresangaben zwischen 1950 und 2049 verstanden.
Diese nearest_century-Option wurde im SQL Anywhere Version 5.5 eingeführt. In Version 5.5 war die Standardeinstellung '0'.
Die folgende Anweisung erstellt eine Tabelle, die benutzt wird, um die Konvertierung von zweideutigen Datumsinformationen in SQL Anywhere zu erläutern.
CREATE TABLE T1 (C1 DATE); |
Die Tabelle T1 enthält eine Spalte, C1, vom Typ DATE.
Die folgende Anweisung fügt einen Datumswert in die Spalte C1 ein. SQL Anywhere konvertiert automatisch eine Zeichenfolge, die einen zweideutigen Jahreswert enthält, d.h. eine Jahreszahl nur mit zwei Stellen, aber ohne Angabe zum Jahrhundert..
INSERT INTO T1 VALUES('00-01-01'); |
Standardmäßig ist die Option nearest_century auf 50 eingestellt, sodass SQL Anywhere die oben genannte Zeichenfolge in das Datum 2000-01-01 konvertiert. Die folgende Anweisung überprüft das Ergebnis dieser Einfügung.
SELECT * FROM T1; |
Wenn Sie die nearest_century-Option mit der folgenden Anweisung ändern, wird auch das Konvertierungsverfahren geändert.
SET OPTION nearest_century = 0; |
Wenn die nearest_century-Option auf '0' gesetzt ist, wird durch die Einfügung mit derselben Anweisung ein anderer Datumswert erstellt:
INSERT INTO T1 VALUES('00-01-01'); |
Die oben genannte Anweisung führt nun zur Einfügung des Datums 1900-01-01. Mit folgender Anweisung werden die Ergebnisse überprüft.
SELECT * FROM T1; |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |