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]