tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Yaslaw
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
314
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    PHP-Fan PHP-Fan ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    171
    Hallo,

    ich habe einen kleinen Logikfehler in meinem Script den ich aktuell nicht lösen kann. Ich möchte gerne, dass nur Datensätze die älter als 12 Stunden sind gelöscht werden. Es werden aber immer alle Datensätze gelöscht egal wie alt die sind. Woran liegt das?

    PHP-Code:
    $sSqlDeleteOldIps 'DELETE FROM `abc_clicks` WHERE DATE_SUB(`term`, INTERVAL 12 HOUR) < NOW()'
    Die Spalte `term` wird als DATETIME gespeichert.

    Um Missverständnisse vorzubeugen hier eine Ausgabe damit ihr sehen könnt, welche Daten da rauskommen.

    Code :
    1
    2
    3
    
    SELECT * , DATE_SUB( `term` , INTERVAL 12 HOUR ) , NOW( ) 
    FROM `abc_clicks` 
    WHERE DATE_SUB( `term` , INTERVAL 12 HOUR ) < NOW( )

    =

    Probleme mit DATE_SUB, INTERVAL und NOW()-unbenannt-3.jpg

    Vielen Dank für die Hilfe.
    Geändert von PHP-Fan (08.02.12 um 01:53 Uhr)
     

  2. #2
    Kalito Kalito ist offline Mitglied Brokat
    Registriert seit
    Aug 2010
    Ort
    Leipzig
    Beiträge
    380
    schau dir doch mal die Funktionen LIKE bzw. BETWEEN an
     
    Ich bin keine Signatur! - Auch wenn`s so aussieht :) - Wirklich!

    Über ein Danke freut sich jeder

  3. #3
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Jepp, da ist ein Missvwerständnis deinerseits.

    Was machst du: Du zählst vom Datum in der Tabelle 12 Stunden ab. Diesen Reduzierten Timestamp vergleichst du mit NOW(). Ergo wird alles gelöscht was im Feld term jünger ist als [Jetzt + 12 Stunden]

    Du willst dein Date-Diff auf das NOW() anwednen

    Code sql:
    1
    
    WHERE term < DATE_SUB( NOW() , INTERVAL 12 HOUR )
    PHP-Fan bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  4. #4
    PHP-Fan PHP-Fan ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    171
    Funktioniert perfekt. Vielen Dank für die Hilfe!
     

Ähnliche Themen

  1. interval partitioning
    Von jeko87 im Forum Algorithmen & Datenstrukturen mit Java
    Antworten: 0
    Letzter Beitrag: 04.11.10, 16:14
  2. Delete From und Date_Sub(Now) Problem
    Von as333 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 17.08.09, 14:34
  3. MySQL - DATE_SUB Formatierungsproblem?
    Von Alfred_ im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 16.12.08, 12:21
  4. Problem mit UserOnlineScript und DATE_SUB
    Von multimolti im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 07.09.07, 13:04
  5. Clip Interval
    Von Matthias Kannengiesser im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 08.05.03, 08:40