我想查看单个查询在特定时刻有多少用户在线。 问题是我将时间保持为 DATETIME (在 在线 字段中),我想将其与时间进行比较( )即可。这是代码:
$online_margin = 10; //in minutes;
$online_margin = $online_margin*60;
$difference = time() - $online_margin;
$query = "SELECT id FROM users WHERE online > $difference";
我尝试过使用 convert()和强制转换,但失败了,所以我很感激为什么会有一些帮助......
答案 0 :(得分:2)
在将其与db字段
进行比较之前,您需要将其转换为Y-m-d h:i:s
格式
$online_margin = 10; //in minutes;
$online_margin = $online_margin*60;
$difference = time() - $online_margin;
$difference = date("Y-m-d h:i:s",$difference); //Convert seconds to Y-m-d h:i:s format
$query = "SELECT id FROM users WHERE online > $difference";
备选方案:您可以将列online
转换为unix_time进行比较,
$query = "SELECT id FROM users WHERE UNIX_TIMESTAMP(online) > $difference";
答案 1 :(得分:1)
这比下面的答案效率低,但它应该有效。
$query = "SELECT id FROM users WHERE UNIX_TIMESTAMP(online) > $difference"