Rechnen mit Datum und Tagen
Krista
- datenbank
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
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
Hallo,
Danke für den Tipp
mfg Krista