如何计算30天中的数据库行?

时间:2019-07-18 14:40:38

标签: php sql

我正在创建一个用于人体工学评估的仪表板,并且试图将其中一张卡片显示在仪表板上,以显示当前超过30天的票证。尽管我设置了两张比它早的票,但现在30天内仍未产生任何结果。

<?php echo $db->mysqli_result(dbQuery("SELECT COUNT(*) FROM tickets WHERE DATE(date_opened) > DATE(NOW()) - INTERVAL 30 DAY")); ?>

我可能使用的查询错误,但这是我在查看其他尝试实现类似效果的个人示例时所看到的。

2 个答案:

答案 0 :(得分:0)

您要使用DATE_SUB():

> DATE_SUB(NOW(), INTERVAL 60 DAY)

完整查询:

SELECT COUNT(*) FROM tickets WHERE DATE(date_opened) > DATE_SUB(NOW(), INTERVAL 30 DAY);

我对此进行了测试,您的查询返回了0行,而DATE_SUB返回了正确的值。

答案 1 :(得分:0)

我建议:

WHERE date_opened < CURDATE() - INTERVAL 30 DAY
------------------^ note less than

我建议避免使用DATE(date_opened),因为那样会阻止使用索引。