Hallo Leute,

Andreas Saeger schrieb:
Hallo Andreas,

versuch einmal das Folgende:

CONVERT(YEAR("Datum")-2||'-'||MONTH("Datum")||'-'||DAY("Datum"),DATE) AS "Vor2Jahren"

ich habe zum Thema Datums-Vergleich einmal mein MySQL-Handbuch Version 5.1 befragt:

Zitat ----------------------------------------------------------------
A.5.2. Probleme bei der Benutzung von DATE-Spalten

Das Format eines DATE-Werts ist 'YYYY-MM-DD'. Im Standard-SQL ist kein anderes Format erlaubt. Dieses Format muss in UPDATE-Ausdrücken und in der WHERE-Klausel von SELECT-Anweisungen immer verwendet werden. Zum Beispiel:

mysql> SELECT * FROM tbl_name WHERE date >= '2003-05-05';

Der Bequemlichkeit halber konvertiert MySQL ein Datum, das in einem numerischen Kontext benutzt wird, automatisch in eine Zahl (und umgekehrt). MySQL ist auch clever genug, um bei Updates und in einer WHERE-Klausel, die ein Datum mit einer TIMESTAMP-, DATE- oder DATETIME-Spalte vergleicht, eine „lockere“-String-Form zuzulassen. („Lockere Form“ bedeutet, dass zwischen den einzelnen Teilen jedes Interpunktionszeichen als Trennzeichen zulässig ist. So sind zum Beispiel '2004-08-15' und '2004#08#15' äquivalent.) MySQL kann auch einen String, der keine Trennzeichen enthält (wie etwa '20040815') konvertieren, vorausgesetzt, er ergibt einen vernünftigen Datumswert.

Wenn Sie Werte vom Typ DATE, TIME, DATETIME oder TIMESTAMP mit einem konstanten String vergleichen, der die Operatoren <, <=, =, >=, > oder BETWEEN enthält, konvertiert MySQL den String normalerweise intern in einen langen Integer, um Vergleiche schneller ausführen zu können (und ein wenig „locker“ bei der String-Prüfung sein zu können). Von dieser Konvertierung gibt es allerdings folgende Ausnahmen:

* wenn Sie zwei Spalten vergleichen
* wenn Sie eine DATE-, TIME-, DATETIME- oder TIMESTAMP-Spalte mit einem Ausdruck vergleichen

* wenn Sie eine andere Vergleichsmethode als die oben aufgeführten verwenden, wie etwa IN oder STRCMP()

In diesen Ausnahmefällen führt MySQL den Vergleich durch, indem es die Objekte in Strings konvertiert und dann die Strings vergleicht.
---------------------------------------------------------------- Zitat

ich denke, daß dies die beste Lösung darstellt, zumindest, wenn man mit MySQL arbeitet und die Abfrage genau so als SQL formuliert.

MfG
Günter

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an