Wie durchsuch ich die spalte um sie anschließend zu löschen
los manas
- datenbank
Hallo,
meine Besucherstatistik speichert Useragent, IP, Referer und Zeit des Besuchers.
die Zeit wird in automatisch gespeichert durch den Spaltentyp TIMESTAMP un Verbindung mit CURRENT_TIMESTAMP.
Das heißt ein Eintrag von heute kann z.B. so aussehen: "2008-02-05 01:04:29"
Ich möchte nun alle Einträge löschen die von heute sind.
Also "DELETE FROM Tabelle WHERE Zeit 'enthält den String date("Y-m-d")' ";
wie kann ich dieses "'enthält den String date("Y-m-d")'" ( also "2008-02-05") umsetzen?
Liebe Grüße
Los Manas
Hi,
wie kann ich dieses "'enthält den String date("Y-m-d")'" ( also "2008-02-05") umsetzen?
Der einfachste Weg: LIKE und Prozentzeichen.
Aufwendiger: Datumsfunktionen bemuehen.
MfG ChrisB
Hello,
Der einfachste Weg: LIKE und Prozentzeichen.
warum würdest du die Datenbank damit nerven wollen jeden Wert erst in einen Text zu konvertieren?
Aufwendiger: Datumsfunktionen bemuehen.
ja, genau!
MySQL Date Functions
MfG
Rouven
Hi,
Aufwendiger: Datumsfunktionen bemuehen.
aufwändig ist, für Datumsberechnungen etwas *anderes* als Datumsfunktionen zu verwenden.
Cheatah
Hi.
Ich versuche es gerade mit:
DELETE FROM besucher
WHERE EXTRACT(YEAR_MONTH_DAY FROM zeit) = FROM_UNIXTIME(CURDATE())
aber das klappt nicht! Woran liegts?
Er löscht alle Einträge aus besucher wo das Datum vom timestamp(in zeit) ist gleich dem aktuellen Datum.
lg
los manas
Hi,
Ich versuche es gerade mit:
DELETE FROM besucher
WHERE EXTRACT(YEAR_MONTH_DAY FROM zeit) = FROM_UNIXTIME(CURDATE())aber das klappt nicht! Woran liegts?
EXTRACT liefert dir etwas im Format 'YYYYMMDD'.
CURDATE() liefert dir 'YYYY-MM-DD' oder YYYYMMDD, je nachdem, in welchem Kontext es verwendet wird. Darauf FROM_UNIXTIME() anzuwenden, ist allerdings unsinnig, weil diese Funktion, wie der Name schon sagt, einen UNIX Timestamp als Parameter erwartet.
Dass das TIMESTAMP-Format von MySQL etwas ganz anderes ist, als ein UNIX Timestamp, hast du dir doch hoffentlich schon klar gemacht?
MfG ChrisB