(MYSQL) wie abfragen Datum > (aktuelles Datum-30)
Knud
- datenbank
0 Kerstin0 Manfred0 André Laugks
Hallo,
ich möchte eine Abfrage formulieren, die mir alle Einträge bringt, wo das Datum größer als aktuelles Datum-30 ist.
Das Feld in der Tabelle ist Typ 'date'.
Ich habs erst mit ner Kombi zwischen php und Mysql probiert:
$datum2 = date("Y-m-d",mktime(0,0,0,date("m"),date("d")-30,date("Y")));
und dann die abfrage über:
$abfrage = "select * from calendar where eventtime > '$datum2'";
Das funktioniert nicht, weil $datum2 vom Typ String ist, oder?
Okay, hab das date() weggelassen, aber ging auch nicht.
(Hab nicht herausfinden können, welches Format da überhaupt rauskommt)
Dann hab ich mal bei MySQL nachgestöbert und fans sowas wie:
$abfrage = "select * from calendar where eventtime > (curdate() - 30)";
Naja, ihr könnts erraten, ging auch nicht.
Dann eben vielleicht mit:
$abfrage = "select * from calendar where eventtime > SUBDATE(curdate(),INTERVAL 30 DAY)";
Aber ebenso negativ. Okay, erst ab Version 3.23 aber ich hab 3.23.40 , sollte also doch gehen.
Egals was ich bisher probiert hab, es kommt immer
Warning: Supplied argument is not a valid MySQL result resource in...
Er macht also die Abfrage nicht.
Hat jemand da vielleicht ne Lösung für mich parat?
Gruß (und Dank),
Knud
Hallo Knud,
hast Du auch schon was mit to_days(now) versucht?
Mehr dazu findest unter http://www.little-idiot.de/mysql/mysql-166.html
viele Grüsse
Kerstin
Hi,
speichere doch den Unix-Timestamp in der Datenbank mit.
Einfach ein Feld erstellen und als Funktion timestamp einstellen
(phpadmin).
Der wird in Sekunden seit dem 1.1.1970 gerechnet.
Dann ziehst du vom aktuellen Timestamp 30 Tage ab
30 Tage = 60 Sekunden * 60 Minuten * 24 Stunden * 30 Tage
=2592000 Sekunden
Dann kannst Du dir beispielsweise mit PHP den Timestamp wieder in ein normales Datum konvertieren lassen.
Viele Grüße
Hallo!
ich möchte eine Abfrage formulieren, die mir alle Einträge bringt, wo das Datum größer als aktuelles Datum-30 ist.
SELECT spalten FROM tabelle WHERE datum>=DATE_ADD(NOW(), INTERVAL -30 DAY);
7.3.4 Datums- und Zeit-Funktionen
http://www.mysql.de/documentation/mysql/bychapter/manual.de_Reference.html#Date_and_time_functions
MfG, André Laugks