Krista: Rechnen mit Datum und Tagen

Hallo,

ich habe eine Tabelle in der ich ein Datum und ein Alter in Tagen gespeichert habe.

nun möchte ich alle Datensätze suchen, die z.B. "2007-10-18" minus "10 Tage" gleich "2007-10-08" ergeben.

Das Alter in Tagen ist bei jedem Datensatz unterschiedlich.
Das Datum zum Vergleichen wird fix angegeben (2007-10-08)

Ich habe Folgenden SQL String:

SELECT * FROM tabellenname WHERE (to_days(lieferdatum) - altertage) = '2007-10-08';

Leider bekomme ich kein Ergebnis. Es müsste aber ein Datensatz angezeigt werden.

Hat vielleicht jemand einen Tipp was falsch sein könnte?

mfg Krista

  1. Hallo Krista,

    SELECT * FROM tabellenname WHERE (to_days(lieferdatum) - altertage) = '2007-10-08';

    Ich nehme mal an, dass Du MySQL verwendest.

    Du solltest beachten, dass to_days Dir eine kontinuierliche Tageszählung liefert - wenn Du das mit einem Datum vergleichst, kann das natürlich nicht klappen.

    Zwei Optionen:

    SELECT * FROM tabellenname WHERE (TO_DAYS(lieferdatum) - altertage) = TO_DAYS('2007-10-08');

    Oder Du verwendest gleich Funktionen zur Datumsberechnung:

    SELECT * FROM tabellenname WHERE DATE_SUB (lieferdatum, INTERVAL altertage DAY) = '2007-10-08';

    Siehe: http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

    Viele Grüße,
    Christian

    1. Hallo,

      Danke für den Tipp

      mfg Krista