【问题标题】:Subtracting two datetime values减去两个日期时间值
【发布时间】:2015-04-22 09:19:51
【问题描述】:

我正在尝试获取用户登录的时间长度。我的代码正在获取登录和注销时间,但我的 DB 表中的 loginLength 字段没有使用此代码更新。有什么想法吗?

$logout = "UPDATE Emp
           SET loginStatus = 0,
           LogoutTime = NOW()
           WHERE username = '$_SESSION[username]'";
if (! mysql_query($logout))
        {
        echo "Error" . mysql_error();
        }          
$time = "UPDATE Emp 
         SET loginLength = DATEDIFF(milliseconds,LoginTime,LogoutTime)
         WHERE username = '$_SESSION[username]'";
         if (! mysql_query($time))
        {
        echo "Error" . mysql_error();
        }

【问题讨论】:

  • 您最好在此处指定 dbms,因为许多产品以自己的方式执行日期/时间操作,而不是按照 ANSI/ISO SQL 指定的方式。
  • 我正在使用 Parallels Plesk

标签: sql login logout


【解决方案1】:

我怀疑您使用 MySQL 作为数据库(过时的“mysql_”函数是一个提示)。然后,您将使用 SQL Server 语法进行日期操作。

MySQL 等价物是:

UPDATE Emp 
     SET loginLength = TIMESTAMPDIFF(MICROSECOND, LoginTime, LogoutTime) / 1000
     WHERE username = '$_SESSION[username]';

您可以尝试“MILLISECOND”,但它没有记录为有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多