You are not logged in.

  • Login

1

Friday, January 21st 2011, 3:29pm

Alle Einträge die älter als 30 Minuten sind, aus der Tabelle entfernen. Komme hier nicht weiter.

Hallo,

ich versuche gerade mit diesem MySQL Befehl alle Einträge die älter sind als 30Minuten zu entfernen.

SQL Code

1
DELETE FROM visitors WHERE 'hier kommt das "jetzt" datum' > last_date + '0000-00-00 00:30:00'

aber leider funktioniert es nicht und ich kann mir nicht erkleren warum.

Sieht jemand den Logik Fehler?

2

Friday, January 21st 2011, 3:31pm

Welchen Datentyp hat deine Datumsspalte?

3

Friday, January 21st 2011, 3:32pm

das last_date ist ein DATETIME Datentyp.

4

Friday, January 21st 2011, 3:36pm

Probier mal die beiden Daten mit ADDTIME zu addieren. Nachzulesen unter http://dev.mysql.com/doc/refman/5.1/de/d…-functions.html

5

Friday, January 21st 2011, 3:39pm

SQL Code

1
DELETE FROM visitors WHERE '2011-01-21 16:20:11' > ADDTIME(last_date, '0000-00-00 00:30:00')


Leider das gleiche Ergäbnis :
[SQL] DELETE FROM visitors WHERE '2011-01-21 16:20:11' > ADDTIME(last_date, '0000-00-00 00:30:00')

Affected rows: 0
Time: 0.015ms

6

Friday, January 21st 2011, 3:40pm

MySQL bzw der SQL Standard erlaubt kein Addieren von Datumsstrings mit irgendwelchen anderen Datetime ausdrücken.
Vergleiche mal:

SQL Code

1
2
3
4
5
6
7
SELECT NOW() + INTERVAL 30 MINUTE;
+----------------------------+
| NOW() + INTERVAL 30 MINUTE |
+----------------------------+
| 2011-01-21 16:06:34        |
+----------------------------+
1 row IN SET (0.00 sec)


SQL Code

1
2
3
4
5
6
7
SELECT NOW() + '0000-00-00 00:30:00';
+-------------------------------+
| NOW() + '0000-00-00 00:30:00' |
+-------------------------------+
|                20110121153653 |
+-------------------------------+
1 row IN SET, 1 warning (0.00 sec)


Aber der Typ der Spalte muss natürlich auch ein korrekter Datumstyp sein!
Mehr Informationen unter http://dev.mysql.com/doc/refman/5.5/en/d…-functions.html

7

Friday, January 21st 2011, 3:44pm

Ja, danke

SQL Code

1
DELETE FROM visitors WHERE '2011-01-21 15:45:12' > last_date + INTERVAL 30 MINUTE


hat gut geklappt.

Similar threads

Social bookmarks