Ole: Datumsvergleich mit mySQL

Hallo,

gibt es eine Möglichkeit zwei Daten mittels mySQL Bordmitteln auf die Differenz der Sekunden zu überprüfen?

DATEDIFF liefert ja nur die Differenz in Tagen.

Mein konkreter Anwendungsfall wäre eine Abfrage, die Einträge aus einer mySQL-Tabelle löscht, die älter als X Sekunden sind.
Das Feld zum Vergleich heißt "time" und ist vom Typ "DATETIME".

Als Pseudocode habe ich etwas im Kopf wie:

DELETE * from myTable WHERE DIFFERENZ_IN_SEKUNDEN(time, now()) > X

Ich vermute mal ganz so einfach wird es wohl nicht werden :S

Hat jemand einen Tipp für mich?

Danke
Ole
(8-)>

--
Stickstoff eignet sich nicht für Handarbeiten.
  1. Hallo Ole,

    gibt es eine Möglichkeit zwei Daten mittels mySQL Bordmitteln auf die Differenz der Sekunden zu überprüfen?

    Mein konkreter Anwendungsfall wäre eine Abfrage, die Einträge aus einer mySQL-Tabelle löscht, die älter als X Sekunden sind.

    Dein konkreter Anwendungsfall läßt sich locker mit MySQL-SQL lösen.

    DELETE * from myTable WHERE DIFFERENZ_IN_SEKUNDEN(time, now()) > X
    Ich vermute mal ganz so einfach wird es wohl nicht werden :S

    Doch.

    DELETE -- kein *, das wäre Jet-SQL ;-)  
    FROM myTable  
    WHERE [link:http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html#id3114818@title=DATE_SUB](  
        NOW(),        -- Startzeitpunkt  
        INTERVAL 30,  -- Anzahl der Einheiten  
        SECOND        -- Sekunden bitte  
    ) > time          -- Berechneter Zeitpunkt ist 30 Sekunden vor jetzt  
                      -- Lösche alle Datensätze, deren Zeiteintrag älter ist.
    

    sollte es tun. Zur konkreten Unterstützung Deiner MySQL-Version vergleiche bitte mit der Tabelle in der verlinkten Dokumentation. Du weißt ja, was Du bei MySQL-Fragen stets angeben solltest ...

    Freundliche Grüße

    Vinzenz

  2. echo $begrüßung;

    gibt es eine Möglichkeit zwei Daten mittels mySQL Bordmitteln auf die Differenz der Sekunden zu überprüfen?
    DATEDIFF liefert ja nur die Differenz in Tagen.

    Wie wäre es mit TIMEDIFF()?

    echo "$verabschiedung $name";

  3. hi,

    du kannst z.B. mit Date_Add ein für den Vergleich brauchbares Datum erzeugen.

    DELETE * from myTable WHERE time < date_add(getdate(), -X Second)

    oder so in der Art...guck dich mal hier um, falls du noch mehr Date/Time Functions brauchst.

    Gruss,
    Seppel

  4. Hallo,

    danke euch. Manchmal sieht man den Wald vor Laute Bäumen nicht mehr.
    Es war ja wirklich viel einfacher als gedacht...und das ich u.a. TIMEDIFF im Manual übersehen habe ist mir schon ein wenig peinlich :S

    so long
    Ole
    (8-)>

    --
    Stickstoff eignet sich nicht für Handarbeiten.