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:
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'");
 
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:
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.
 
Zurück
Oben