MYSQL - Abfrage zwischen Datum A und Datum B
-
Hallo,
in meiner Tabelle habe ich verschiedene Beitraäge gespeichert. Jeder Beitrag wurde zu einem Datem verfasst und wird durch den Aufbau tt.mm.jj präsentiert.
Nun möchte ich in meinem PHP Script gerne alle Daten zwischen zwei Daten (Datum A und Datum
ermitteln.
Wenn ich "select * from items where date between '21.05.03' and '25.06.03'" setze wird es ja nicht funktionieren.
Hat jemand eine Idee wie ich zu meinem Ergebniss komme?
Martin
-
Datumsangaben werden normalerweise in der Form YYYY-mm-dd geschrieben - also z.B. so: '2003-05-21'
-
Abgesehen davon das DATE,DATETIME in MySQL das Datum garnicht anderes speichert.
Wenn du kein DATE, DATETIME hast kannst du auch nicht nach Datum abfragen.
-
naja es ginge schon nach dem Text zu sortieren. Am sinnvollsten wär an deiner Stelle aber einfach eine neue Spalte vom typ DATE oder DATETIME zu machen und dann einmal ein script oder update schreiben das dir deine Strings darein schreibt. Dann musst du allerdings deine ganzen zugriffe in deinen Funktionen dahingehen korregieren.
zweiter möglichkeit wär halt den String so umzubauen das er sich numerisch richtig ordnen lässt: YYmmdd. Dann hast du aber wieder ein Problem falls die gespeicherten Jahre die Jahrtausendwende überschreiten.
SELECT substr(datum, 6, 2) || substr(datum, 3, 2) || substr(datum, 0, 2) datum FROM tabelle ORDER by datum;
Aber wie gesagt: Für daten sollte man unbedingt DATE oder DATETIME in der DB benutzen! kann man dann auch schon mit date_format() in alle formen bringen..
mfg
tobi