最后一天内的SQL项


SQL Items within the Last Day

在我的代码中,我试图在活动表中查找最后一天内的项目。此查询未返回任何结果,是否存在任何问题?还有更好的查询吗?

$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

,则为(TODAY-1)