php - 比较数据库中的时间和使用 date() 函数检索的当前时间

标签 php mysql

 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:

mysqli_query()

PDO::query()

关于php - 比较数据库中的时间和使用 date() 函数检索的当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16012437/

相关文章:

php - 如何在没有额外提供商的情况下通过 channel 管理器同步 MySQL 数据库(或我的网站预订)?

javascript - 使用 jQuery $.post 返回的数组

mysql - 服务堆栈 OrmLite : JSON fild deserialization Issue

mysql - 将字符串值插入日期时间列

c# - 如何使用mysql获取数据库中的所有记录?

mysql - 如何使用MYSQL获取关系表中的最大值

javascript - 更新sql失败

php - Laravel:仅在某些路径中隐藏模型的属性

javascript - HTML Purifier 用于清理事件属性

MySQL "mysql there is no such grant defined for user"