在我的代码中,我试图在活动表中查找最后一天内的项目。此查询未返回任何结果,是否存在任何问题?还有更好的查询吗?
$curday = time() - (24*3600);
$query = "SELECT * FROM activities WHERE userid = '$userid' AND 'timestamp' > '$curday'";
这里有两种选择,你可以通过PHP或使用SQL语言来获取和格式化日期。我更喜欢在SQL中进行,它也允许我在MySQL客户端中使用相同的查询。
这个问题本质上是一样的:MySQL SELECT最近几天?
这将是新的查询:$query = "SELECT * FROM activities WHERE userid = '$userid' AND 'timestamp' > DATE_ADD(CURDATE(), INTERVAL -1 DAY)";
您可以尝试使用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)
还有一件事,如果时间戳是您的列名,请不要将此列放在单引号内。。
您可以使用的是DATE_SUB。这可以按以下使用
SELECT * FROM activities
WHERE userid = '$userid'
AND timestamp > date_sub(current_date, interval 1 day)
这样,您就不需要在PHP 中使用当前日期
在Informix中,如果列类型为DATE