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&lt; $ currenttimeminus30 .last_updated是户外表中的一个字段,它的类型为time。 last_updated值如13:05:11
答案 0 :(得分:1)
您可以使用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
因为已弃用:
自PHP 5.5.0起,此扩展程序已弃用,并将在中删除 未来。相反,应使用MySQLi或PDO_MySQL扩展名。 另请参阅MySQL: choosing an API指南和related FAQ了解更多信息 信息。该功能的替代方案包括:
答案 1 :(得分:0)
更好地使用mysql的INTERVAL:
last_updated < time ( now() - INTERVAL 30 MINUTE )
这里:
$query1=mysql_query("select * from outdoor where latitude='$latitude%' and longitude='$longitude%' and user_id='$userid' and last_updated < time ( now() - INTERVAL 30 MINUTE) )";