php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.12.2005, 22:30  
patr1k
Gast
 
Beiträge: n/a
Standard Delete, Interval...

Nabend,

ich habe eine Tabelle aus der ich alle Einträge löschen will, bei denen der Timestamp älter als 10 Minuten ist.

Habe mir das so zusammen geschustert:

Zitat:
DELETE FROM `user_online` WHERE timestamp_feld < DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL - 10 MINUTE)
Da löscht er mir momentan aber jeden Eintrag... Habe ich da irgendwo einen Denkfehler drin?

Danke für die Hilfe
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.12.2005, 23:19  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zunächst einmal: Ist timestamp_feld überhaupt vom Typ DATETIME, DATE oder TIMESTAMP oder hast du eine INT-Spalte, in der ein UNIX-Timestamp steht?
Und warum nimmst du nicht DATE_SUB()?
xabbuh ist offline   Mit Zitat antworten
Alt 18.12.2005, 01:30  
patr1k
Gast
 
Beiträge: n/a
Standard

Ist eine timestamp spalte... hab mal date_sub vor geschrieben, aber das geht auch nicht.
  Mit Zitat antworten
Alt 18.12.2005, 01:43  
Gast
 
Beiträge: n/a
Standard

Mach doch erstmal ein entsprechendes SELECT draus und schau Dir an, was passiert.
  Mit Zitat antworten
Alt 29.12.2005, 22:59  
patr1k
Gast
 
Beiträge: n/a
Standard

Wie gesagt, dann gibt er alle zurück... oder löscht halt alle. Aber wo ist der Fehler in dem Statement?

EDIT: Ich glaub ich habs... mit:

Code:
SELECT * FROM `user_online` WHERE timestamp_feld < UNIX_TIMESTAMP(NOW()) - 600
scheint es zu funktionieren.
  Mit Zitat antworten
Alt 30.12.2005, 11:49  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von patr1k
EDIT: Ich glaub ich habs... mit:

Code:
SELECT * FROM `user_online` WHERE timestamp_feld < UNIX_TIMESTAMP(NOW()) - 600
scheint es zu funktionieren.
Wenn das so ist, dann ist das Attribut timestamp_feld definitiv nicht vom Typ TIMESTAMP
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 01.01.2006, 03:11  
patr1k
Gast
 
Beiträge: n/a
Standard

Hab ich im PHP MyAdmin aber ausgewählt...

timestamp_feld => timestamp(14)

Zwischnen Datetime und time...

Frohes Neues...
  Mit Zitat antworten
Alt 01.01.2006, 10:46  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von lazydog
Wenn das so ist, dann ist das Attribut timestamp_feld definitiv nicht vom Typ TIMESTAMP
Naja, unter MySQL < 4.1 sollte das auch funktionieren, wenn auch nicht so wie gewollt, da dort die TIMESTAMP-Spalten im Format YYYYMMDDHHMMSS gespeichert wurden, was letztendlich auch nur ein Integer ist.

Zitat:
Zitat von patr1k
Hab ich im PHP MyAdmin aber ausgewählt... Question

timestamp_feld => timestamp(14)
Dann solltest du zum Vergleichen mit dem aktuellen Datum allerdings nicht die Funktion UNIX_TIMESTAMP() benutzen. Eine Spalte vom Typ TIMESTAMP speichert das Datum lediglich im Format YYYYMMDDHHMMSS (vor 4.1) bzw. YYYY-MM-DD HH:MM:SS (ab 4.1)[/url]

Für Datumsvergleiche müsstest du hier also etwas anders herangehen:
Code:
DELETE
    `user_online`
WHERE
    timestamp_feld < DATE_SUB(NOW(), INTERVAL 10 MINUTE)
xabbuh ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Beim DELETE zwei Tabellen verknüpfen Bonaparte Datenbanken 5 15.02.2008 09:32
DELETE Über mehrere Tabellen und Einträge pchero Datenbanken 12 16.03.2007 02:43
... ON DELETE und ... ON UPDATE DirkHo Datenbanken 2 23.05.2006 18:59
Interval ... dimitri PHP Tipps 2007 1 27.12.2005 11:08
DELETE mit LIMIT ckrentel Datenbanken 10 26.11.2005 00:53
DELETE FROM warenkorb WHERE zeitstempel... Datenbanken 5 13.11.2005 12:03
DELETE (schwer zu beschreiben) patr1k Datenbanken 2 05.11.2005 21:46
[Erledigt] Delete aus mehreren Tabellen - Problem Datenbanken 4 16.09.2005 15:24
DELETE FEHLER.... Datenbanken 7 25.08.2005 00:22
Group auf MySQL DateTime per Interval RcRaCk2k Datenbanken 3 22.07.2005 11:14
delete Beitragsarchiv 1 06.07.2005 21:00
[Erledigt] delete nach 100 eintrag Datenbanken 3 28.02.2005 09:21
Delete Problem aus Datebank nach bestimmter Zeit PHP Tipps 2004 1 25.10.2004 10:22
delete script problem PHP Tipps 2004 5 23.07.2004 14:39
FTP delete oder Browser delete Anuschka PHP Tipps 2004 5 16.07.2004 14:06

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
current_timestamp - interval, php mit interval löschen, current_timestamp, interval, delete interval, current_timestamp() interval 30 minute, unix_timestamp die letzten 10 min, sql statements einträge älter als stunden, mysql unix_timestamp älter now() interval, current_timestamp ältere einträge löschen, sql warenkorb einträge löschen die älter als 14 tage sind, sql server 2005 delete from where date datum spalte löschen alle datum älter als 10 minuten stunde, löschen von einträgen im warenkorb, die älter al 14 tage sind, php mysql current_timestamp interval minute, delete interval from, current_timestamp interval, delete form where < now()-interval 15 minute;, sql group by \10 min-intervall\, 10 min intervall in php, php timestamp interval löschen, timestamp delete interval

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:02 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.