比较php中的时间戳列

时间:2013-06-02 17:51:47

标签: php

我有一个使用当前时间戳自动更新的表。让列名称为“updatedTime”..它给出了一个值:

2013-06-02 17:38:10

现在我想将此值与当前时间进行比较,差异应该小于180秒...... 这意味着用户最近在3分钟内更新了内容。

我试过了:

$statement = $conn->prepare('SELECT * FROM users WHERE NOW() - updatedTime < 180 AND visibility = 1 AND linkedInId = :linkedInId');
$statement->bindParam(':linkedInId', $linkedInId, PDO::PARAM_INT);
$statement->execute();
if(($row = $statement->fetch(PDO::FETCH_OBJ))) 

然而,这似乎并没有像预期的那样发挥作用。

我还应该尝试什么?

3 个答案:

答案 0 :(得分:0)

SELECT * FROM users WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(updatedTime) < 180 AND visibility = 1 AND linkedInId = :linkedInId

答案 1 :(得分:0)

用作:

SELECT TIME_TO_SEC(TIMEDIFF(NOW(),updatedTime));

或者确切地说:

$statement = $conn->prepare('SELECT * FROM users WHERE TIME_TO_SEC(TIMEDIFF(NOW(),updatedTime)) < 180 AND visibility = 1 AND linkedInId = :linkedInId');
        $statement->bindParam(':linkedInId', $linkedInId, PDO::PARAM_INT);
        $statement->execute();
        if(($row = $statement->fetch(PDO::FETCH_OBJ))) 

答案 2 :(得分:0)

NOW()使用interval关键字返回日期时间而不是时间戳来对datetime列进行数学运算:

SELECT * FROM users WHERE (NOW() - INTERVAL 3 MINUTE) <  updatedTime