los manas: Wie durchsuch ich die spalte um sie anschließend zu löschen

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

  1. 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

    1. 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

      --
      -------------------
      sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    2. Hi,

      Aufwendiger: Datumsfunktionen bemuehen.

      aufwändig ist, für Datumsberechnungen etwas *anderes* als Datumsfunktionen zu verwenden.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
  2. 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

    1. 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