Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Sortieren nach timestamp

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von bildungszentrumb4, 2 Juni 2012.

  1. bildungszentrumb4

    bildungszentrumb4 Neuer Benutzer

    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>";
     
  2. bildungszentrumb4

    bildungszentrumb4 Neuer Benutzer

    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'");
     
  3. PLSQL_SQL

    PLSQL_SQL Datenbank-Guru

    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
     
  4. ukulele

    ukulele Datenbank-Guru

    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.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden