date_default_timezone_set('Asia/Calcutta');
$currenttimeminus30=date('H:i:s', strtotime("-30 minutes"));
$query1=mysql_query("select * from outdoor where latitude='$latitude%' && longitude='$longitude%' && user_id='$userid' && last_updated<$currenttimeminus30");
我需要比较last_updated < $currenttimeminus30 .last_updated是否是室外表中的字段并且它是时间类型。 last_updated 值类似于 13:05:11
最佳答案
您可以使用TIME()
功能:
SELECT *
FROM outdoor
WHERE latitude = '$latitude%'
AND longitude = '$longitude%'
AND user_id = '$userid'
AND last_updated < TIME($currenttimeminus30)
如果您不使用不同的时区,您就不想使用 PHP 创建时间。您可以仅使用INTERVAL
:
SELECT *
FROM outdoor
WHERE latitude = '$latitude%'
AND longitude = '$longitude%'
AND user_id = '$userid'
AND last_updated < TIME( NOW() - INTERVAL 30 MINUTE )
注释:
最好使用datetime
作为字段类型。在您的情况下,当记录不是今天更新而是在几天、几个月、几年等之前更新时,您可能会得到错误的结果。
请不要使用mysql_query
因为它已被弃用:
This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:
关于php - 比较数据库中的时间和使用 date() 函数检索的当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16012437/