MySQL Datensätze Löschen, Die Älter Als X Minuten?
Ich habe gesucht, einiges gefunden und ein paar Lösungen, die nicht für mich arbeiten und kann nicht verstehen, warum.
Ich habe eine Tabelle mit einer timestamp-Spalte. Der MySQL-Datentyp für diese Spalte ist 'datetime'. Ich stecken Sie in diese Tabelle die folgenden von PHP.
date('Y-m-d H:i:s')
Diese betritt, was aussieht wie der richtige Wert für die MySQL date time.
2012-06-28 15:31:46
Möchte ich in dieser Spalte Zeilen löschen, die älter sind als, sagen wir, 10 Minuten. Ich bin mit der folgenden Abfrage, aber es funktioniert nicht. Es wirkt sich auf 0 Zeilen.
DELETE FROM adminLoginLog WHERE timestamp < (NOW() - INTERVAL 10 MINUTE);
Kann jemand etwas Licht, was ich falsch mache und warum es nicht richtig funktioniert?
Dank.
versuche mein Update-1 Antwort und lassen Sie mich wissen, was Sie bekommen...
danke. Ich habe gerade versucht, aber es hat nicht funktioniert. Sehr geschätzt wird.
danke. Ich habe gerade versucht, aber es hat nicht funktioniert. Sehr geschätzt wird.
InformationsquelleAutor Sajan Parikh | 2012-06-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seit TIMESTAMP() ist eine eingebaute Funktion liefert den aktuellen Zeitstempel, wird die Abfrage nie wieder keine Ergebnisse.
Versuchen Sie das einwickeln der Spalte wieder Zecken zu lassen, MySQL wissen, dass Sie die Spalte, nicht das reservierte Wort:
Getestet habe ich Ihre Abfrage mit den backticks und es scheint zu funktionieren für mich. Welches Problem haben Sie? Möchten Sie vielleicht überprüfen Sie Ihre Daten. Zeitzone ausstellen?
Ich denke, das Problem könnte sein, dass ich mit den DATETIME-Datentyp, wenn ich mit sollte TIMESTAMP in MySQL. Ich bin die Aktualisierung meiner Datenbank und das hinzufügen von ein paar neue Datensätze mit diesem und wird versuchen, es in nur ein bisschen. Sehr geschätzt wird.
funktioniert gut mit entweder TIMESTAMP oder DATETIME-Spalten. MySQL unterstützt die Konvertierung. Das problem liegt woanders.
InformationsquelleAutor Marcus Adams
timestamp
ist ein reserviertes Schlüsselwort in mysql ist. Verwendentimestamp
als eine Feld Namen, die Sie haben zu setzen, dass in backticks, wie unten gezeigt.Wenn time_created ist ein unix-timestamp (int), Sie sollten in der Lage sein, etwas zu verwenden, wie diese:
(600 Sekunden = 10 Minuten - natürlich)
Ansonsten (wenn time_created ist mysql timestamp), Sie könnten versuchen, diese:
Update 1
Update 2
Demo
Das ist toll. Auch umbenennen Feld name
timestamp
etwas anderes... z.B. myDate oder timeEntered...Für die datetime -, Update 2 funktioniert hätte...
Mit datetime, funktioniert JETZT, allerdings Bedarf es der
DATE_SUB
InformationsquelleAutor Fahim Parkar
Ich würde produzieren den timestamp in php, dann geben Sie in Ihrer mysql-Abfrage:
InformationsquelleAutor blearn
Ihre Abfrage korrekt ist, wenn Sie Zugang zu phpmyadmin den Befehl ausführen in der SQL-Konsole, die Ihnen einige weitere Informationen.
InformationsquelleAutor fanbondi
PHP-Code :
Hinweis :
Hier temp_project_member_details : Tabellennamen in der Datenbank tifu
und create_at : Feldname innerhalb der Tabelle temp_project_member_details, die hat Datum und Uhrzeit gespeichert, mit der gleichen Funktion
'" . date("Y-m-d H:i:s"). "'
Screenshot Löschen Nach 10 Minuten code
Screenshot der Speicherung von Datum und Uhrzeit in der create_at Feld der Tabelle, wie beschrieben in Antwort
InformationsquelleAutor SHAH HAIDARALI NADIR