在我的代码中,我试图在活动表中找到最后一天内的项目。此查询未返回任何结果,是否有任何问题?有更好的查询吗?
$curday = time() - (24*3600);
$query = "SELECT * FROM activities WHERE userid = '$userid' AND 'timestamp' > '$curday'";
答案 0 :(得分:1)
这里有两种选择,您可以通过PHP获取日期并使用SQL语言来设置日期。我更喜欢在SQL中执行它,它还允许我在MySQL客户端中使用相同的查询。
这个问题基本上是一样的:MySQL SELECT last few days?
这将是新查询:
$query = "SELECT * FROM activities WHERE userid = '$userid' AND 'timestamp' > DATE_ADD(CURDATE(), INTERVAL -1 DAY)";
答案 1 :(得分:1)
您可以尝试使用unix函数'mktime'来获取昨天的值。 如
$curday = mktime(0,0,0,date("m"),date("d")-1,date("Y"));
如果您的数据库只有mysql,那么您可以在sql本身中提取昨天..
SELECT * FROM activities
WHERE userid = '$userid'
AND timestamp > DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 1 DAY)
如果时间戳是你的列名,还有一件事就是不把这个列放在单引号中。
答案 2 :(得分:0)
您可以使用的是DATE_SUB。这可以使用如下
SELECT * FROM activities
WHERE userid = '$userid'
AND timestamp > date_sub(current_date, interval 1 day)
这样您就不需要使用PHP中的当前日期
答案 3 :(得分:-2)