DATE_SUB

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