André Laugks: MySQL: Schachtelung von SQL-Funktionen klappt nicht...

Beitrag lesen

Hallo!

Nicht 05.05.2003 sondern '2002-05-05'.
Ja, ich habs auch erst 2003-05-05 geschrieben,aber das Ziel sollte ja sein das SQL auch einen String in der Form von 05.05.2003 annimmt.

DATE_ADD() erwartet aber ein Datum oder Datum und Zeit in der Form YYYY-MM-DD bzw. YYYY-MM-DD HH:MM:SS.

Nicht d.m.Y, sonder '%Y-%m-%d'.
Das hatte ich auch testweise so verändert, in der Hoffnung man kann sich so selber die Datumsformatierung bestimmen, also SQL sagen wie die Daten aussehen damit SQL diese selbst ins richtige interne Format wandelt.

Erstens, es kommt auch auf das %-Zeichen an. MySQL benötig die Formate, wie oben beschrieben, um rechnen zu können. Da könnte ja jeder kommen und irgendwie das Datum zum berechnen formatieren.

Aber DAT_FORMAT ist überflüßig:
Nicht wenn die Daten in der Form 05.05.2003 ins Query reingeschrieben werden? Darum gehts mir ja, ich würde gerne die Formatierung innerhalb des Statements vornehmen, als ich 05.05.2003 in die DATE_FORMAT eingelesen habe ging es ja, nur wenn aussen (oder innen) noch die zweite Funktion DATE_ADD steht gehts nicht mehr.

Wenn Du das Datum formatieren möchtest, kannst Du das tun. Im WHERE-Bereich wird es Dir aber nichts bringen, da kommt es ja zu keiner ausgabe. Dort werden nur Bedingungen hin geschrieben.

SELECT DATE_FORMAT('2003-05-05', '%d.%m.%y') AS format_datum WHERE ... DATE_ADD('2003-05-01', INTERVAL 1 DAY);

Muss ich wohl mein eingegebenes Datum per reg. Expressions in das entsprechende SQL-Format wandeln und dieses dann in das Query einfügen? Das sollte zur Not auch gehen, vielleicht hat jemand eine bessere Idee?

Nööö, auf keinen Fall. Nur die Funktionen an der richtigen Stelle einsetzen.

MfG, André Laugks

--
L-Andre @ gmx.de