Sortieren nach timestamp

bildungszentrumb4

Neuer Benutzer
Beiträge
3
Hi,
folgende Anfrage soll alle Onlinenutzer nach 1 Std automatisch ausloggen.. Wieso funktioniert der timestampvergleich nicht ??

$erg=mysql_query("DELETE FROM online WHERE zeit<'strftime('%Y-%m-%d %H:%M:%S',time()-3600)' ");

Wenn ich es manuell teste funktioniert es fehlerfrei, nur der vergleich der SQL-timestamp-strings klappt nicht.

Beim manuellen Test als php vergleich geht es:
$erg=mysql_query("SELECT * FROM online");
while ($zeile = mysql_fetch_object($erg))
{
echo "ONLINE ",$zeile->user," ",$zeile->zeit,"<br>";
if ($zeile->zeit<strftime('%Y-%m-%d %H:%M:%S',$zeit+20)) echo $zeile->zeit,"<",strftime('%Y-%m-%d %H:%M:%S',$zeit+20),"<br>";
}
echo "ZEIT: ",$zeit," ",strftime('%Y-%m-%d %H:%M:%S',$zeit),"<br>";
echo "ZEIT: ",$zeit-20," ",strftime('%Y-%m-%d %H:%M:%S',$zeit-20),"<br>";
echo "ZEIT: ",$zeit-3600," ",strftime('%Y-%m-%d %H:%M:%S',$zeit-3600),"<br>";
 
Werbung:

bildungszentrumb4

Neuer Benutzer
Beiträge
3
komischerweise funktioniert es auch wenn ich die funktion zur stringerstellung auslagere... why ???

$a=strftime('%Y-%m-%d %H:%M:%S',$zeit-3600);
$erg=mysql_query("DELETE FROM online WHERE zeit<'$a'");
 

PLSQL_SQL

Datenbank-Guru
Beiträge
176
Ja PHP wird beides in Zeichenfolgen oder Datums-Datentypen konvertieren und somit funktionierts.

Leider kenne ich mich mit MySQL nicht so aus, aber es müsste doch einen Befehlt wie "to_date(meinDatum , 'dd.mm.yyyy')" geben. Vl. mal kurz suchen.

Lg
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.394
Leider ist mir das auch zu MySQL spezifisch und damit arbeite ich nie. Aber in MS SQL ist TIMESTAMP irgendein hexadecimaler Wert. Man kann natürlich auch ein Datumsformat wählen und als Timestamp benutzen.
 
Oben