Erhard: Datensätze löschen die älter als 30 Minuten sind

ich habe in meiner Datenbank (tabelle) ein Feld (datum) in der ein Timestamp steht, nun möchte ich alle Einträge löschen die älter als 30 Minuten sind

DELETE FROM tabelle WHERE datum < date_add(current_date, interval -30 minute)

Fehlermeldung bekommeich keine, aber Datensätze sind auch nicht gelöscht.

Erhard

  1. Hi,

    DELETE FROM tabelle WHERE datum < date_add(current_date, interval -30 minute)

    Was liefert SELECT * FROM tabelle WHERE datum < date_add(current_date, interval -30 minute)?

    ~dave

  2. ich habe in meiner Datenbank (tabelle) ein Feld (datum) in der ein Timestamp steht, nun möchte ich alle Einträge löschen die älter als 30 Minuten sind

    DELETE FROM tabelle WHERE datum < date_add(current_date, interval -30 minute)

    Fehlermeldung bekommeich keine, aber Datensätze sind auch nicht gelöscht.

    Erhard

    DELETE FROM tabelle WHERE datum < NOW() - INTERVAL 30 MINUTE

    Oder mit date_add

    das + bzw - ersetzt dir das date_add

  3. Hi,

    ich habe in meiner Datenbank (tabelle) ein Feld (datum) in der ein Timestamp steht, nun möchte ich alle Einträge löschen die älter als 30 Minuten sind
    DELETE FROM tabelle WHERE datum < date_add(current_date, interval -30 minute)

    Das löscht alle Einträge aus tabelle, deren Feld datum kleiner ist als "Gestern 23:30 Uhr".

    CURRENT_DATE zeigt auf "Heute, 0:00 Uhr", nicht auf "Jetzt". Du willst vielleicht CURRENT_TIMESTAMP oder NOW() nutzen.

    Bis die Tage,
    Matti

    1. Hi Matti,

      Das löscht alle Einträge aus tabelle, deren Feld datum kleiner ist als "Gestern 23:30 Uhr".

      Yep, desweiteren würde ich dann vorschlagen auch noch direkt DATE_SUB() zu verwenden - sieht irgendwie einfach schöner aus ;-)

      DELETE FROM tabelle WHERE datum < DATE_SUB(NOW(), INTERVAL 30 MINUTE)

      Viele Grüße,
        ~ Dennis.

      1. Hi!

        Yep, desweiteren würde ich dann vorschlagen auch noch direkt DATE_SUB() zu verwenden - sieht irgendwie einfach schöner aus ;-)
        DELETE FROM tabelle WHERE datum < DATE_SUB(NOW(), INTERVAL 30 MINUTE)

        Ich finde die Schreibweise ohne die Funktionsnamen DATE_ADD/SUB schöner.

        DELETE FROM tabelle WHERE datum < NOW() - INTERVAL 30 MINUTE

        Lo!