logitechg15: MySQL Monate zwischen zwei Daten berechnen

Hallo,

Ich sitze jetzt schon seit längerem an dieser Abfrage, aber komme nicht zu einem grünen Zweig ;)

Also folgendes Problem:
Ich habe eine Tabelle mit unter anderem folgenden Werten: (id, startDate, endDate, month...)
Ich will jetzt eine syntax erstellen mit der ich was eintragen kann mit den 2 Daten und dass im 4 Feld automatisch die Monate berechnet werden.

Folgenden Ansatz hätte ich:

"INSERT INTO Period VALUES(NULL, DATE('2008-03-28'), DATE('2008-05-28'), SELECT PERIOD_DIFF( EXTRACT( YEAR_MONTH FROM DATE('2008-03-28')), EXTRACT( YEAR_MONTH FROM DATE('2008-05-28')) ),...);"

so bekomm ich eine syntax error.

Ich habe schon ein paar kombinationen probiert, aber es klappt net ;)
Eine andere Frage, wäre es auch möglich irgenwie bei "YEAR_MONTH FROM DATE('2008-03-28')" redundant das aus der DB zu holen was gerade rein geschrieben wurde? Wenn nicht, ist auch nicht schlimm. Hauptsache die Monate berechnen funktioniert :).

Danke im Voraus.

  1. Hallo,

    und was für einen Syntaxerror bekommen wir da?

    Vielleicht ist ja einfach nur das SELECT bei SELECT PERIOD_DIFF zuviel?

    Ciao, Frank

    1. Hi

      vielen Dank; zumindest gehts schon mal ein wenig weiter so ;)

      aber der

      PERIOD_DIFF( EXTRACT( YEAR_MONTH FROM DATE(2008-03-28)), EXTRACT( YEAR_MONTH FROM DATE(2008-05-28)) )

      gibt einzeln NULL aus. Da ist irgendwo noch ein bug drin.

      Mit der Syntax error konnte man nicht viel anfangen; wie so oft "near..." und dann sitzt man da ;)

      Vielen Dank

      1. Nachtrag:

        also schon

        SELECT EXTRACT( YEAR_MONTH FROM DATE(2008-05-28))

        gibt NULL, also stimmt wohl was da nicht. Weiss da einer weiter

        Danke

        1. Und wieder ich :)

          hat sich erledigt:

          so klappts:

          "PERIOD_DIFF( EXTRACT( YEAR_MONTH FROM '2008-05-28'), EXTRACT( YEAR_MONTH FROM '2008-03-28') )"

          Danke nochmals