DATE_SUB
am 26.11.2007 23:28:42 von Daniel Schmidt
Hallo NG,
ich möchte alle Datensätze die vor zwei Monaten in der Tabelle sind
ausgeben:
lt. Manual:
WHERE datum < DATE_SUB(datum, INTERVAL 2 MONTH)
error folgt zugleich:
You have an error in your SQL syntax. Check the manual that corresponds
to your MySQL server version for the right syntax to use near 'WHERE
datum < DATE_SUB(datum, INTERVAL 2 MONTH)' at line 1
datum im MySQL-Format
was mache ich verkehrt?
Grüße Daniel
Re: DATE_SUB
am 27.11.2007 08:09:27 von Sebastian Suchanek
Daniel Schmidt schrieb:
> [...]
> datum im MySQL-Format
> [...]
Was meinst Du mit "MySQL-Format"?
Tschüs,
Sebastian
Re: DATE_SUB
am 27.11.2007 08:32:01 von Claus Reibenstein
Daniel Schmidt schrieb:
> ich möchte alle Datensätze die vor zwei Monaten in der Tabelle sind
> ausgeben:
Den Satz bitte nochmal auf deutsch ;-)
> lt. Manual:
>
> WHERE datum < DATE_SUB(datum, INTERVAL 2 MONTH)
Das ist nur die WHERE-Klausel Deines Statements. Bitte poste mal das
_ganze_ Statement.
> You have an error in your SQL syntax. Check the manual that corresponds
> to your MySQL server version for the right syntax to use near 'WHERE
> datum < DATE_SUB(datum, INTERVAL 2 MONTH)' at line 1
Da er schon das WHERE anmault, muss der Fehler in dem Teil Deines
Statements liegen, der _vor_ diesem WHERE steht (und den Du uns
ungeschickterweise vorenthalten hast).
> datum im MySQL-Format
?
Gruß. Claus
Re: DATE_SUB
am 27.11.2007 10:11:08 von Christian Kirsch
Daniel Schmidt schrieb:
> Hallo NG,
>
> ich möchte alle Datensätze die vor zwei Monaten in der Tabelle sind
> ausgeben:
>
> lt. Manual:
>
> WHERE datum < DATE_SUB(datum, INTERVAL 2 MONTH)
>
> error folgt zugleich:
>
> You have an error in your SQL syntax. Check the manual that corresponds
> to your MySQL server version for the right syntax to use near 'WHERE
> datum < DATE_SUB(datum, INTERVAL 2 MONTH)' at line 1
>
> datum im MySQL-Format
>
> was mache ich verkehrt?
>
1. Du postest nicht das komplette Statement
2. Du lässt jede andere wichtige Information weg, z.B. die Ausgabe von
SHOW CREATE TABLE
3. Deine WHERE-Bedingung ist logischer Unsinn (ein Datum kann nie zwei
Monate vor sich selbst liegen) - selbst wenn die Syntax Deiner Abfrage
korrekt wäre, wäre die Ergebnismenge leer.
Re: DATE_SUB
am 27.11.2007 12:18:51 von Daniel Schmidt
Hallo,
gesamtes Statement:
INSERT INTO statistik_neu (id,datum) SELECT id,datum FROM statistik
WHERE datum < DATE_SUB(datum, INTERVAL 2 MONTH)
wir muss ich es logisch ausdrücken?
Grüße Daniel
Re: DATE_SUB
am 27.11.2007 12:28:07 von Andreas Kretschmer
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Re: DATE_SUB
am 27.11.2007 22:10:43 von Daniel Schmidt
ja, mal von diesem Missgeschick abgesehen:
You have an error in your SQL syntax. Check the manual that corresponds
to your MySQL server version for the right syntax to use near 'WHERE
datum < DATE_SUB(NOW(), INTERVAL 2 MONTH)' at line 1
Grüße Daniel
Re: DATE_SUB
am 27.11.2007 22:52:49 von Claus Reibenstein
Daniel Schmidt schrieb:
> INSERT INTO statistik_neu (id,datum) SELECT id,datum FROM statistik
> WHERE datum < DATE_SUB(datum, INTERVAL 2 MONTH)
Da fällt mir auf, dass die Spaltenbezeichnungen in statistik und
statistik_neu identisch sind. Eventuell stört er sich daran (auch wenn
ich es mir eigentlich nicht recht vorstellen kann). Dagegen könnte das
hier helfen:
INSERT ... SELECT statistik.id, statistik.datum FROM statistik
WHERE statistik.datum ...
Gruß. Claus
Re: DATE_SUB
am 28.11.2007 00:11:19 von Axel Schwenke
Daniel Schmidt wrote:
> ja, mal von diesem Missgeschick abgesehen:
>
> You have an error in your SQL syntax. Check the manual that corresponds
> to your MySQL server version for the right syntax to use near 'WHERE
> datum < DATE_SUB(NOW(), INTERVAL 2 MONTH)' at line 1
Der Fehler ist unmittelbar vor dem WHERE.
Die von dir gepostete Query hat da einen Zeilenumbruch. Hat den das
Original auch? Ist das evtl. ein DOS-Zeilenumbruch?
Wie *genau* kommt der Querystring in die Datenbank? Hast du den mal
in den Kommandozeilenclient eingetippt? Kommt da auch ein Fehler?
XL