如何显示今天的UNIX_TIMESTAMP中的所有记录

时间:2018-03-31 17:18:54

标签: php mysql timestamp unix-timestamp

我正在尝试显示今天发生的所有攻击。这是我在php页面中的当前SQL。然而,它并没有显示今天发生了多少。

$TodayAttacks = $odb->query("SELECT COUNT(id) FROM `logs` WHERE `date` BETWEEN DATE_SUB(CURDATE(), INTERVAL '-1' DAY) AND UNIX_TIMESTAMP()")->fetchColumn(0);

1 个答案:

答案 0 :(得分:0)

如果今天是""你的意思是"从今天午夜开始#34;,你的查询应该是这样的:

SELECT COUNT(id) FROM logs
 WHERE date >= CURDATE();

如果日志中的日期值可能大于今天的日期(嘿,奇怪的事情发生了!)那么你想要这个(我建议不要使用BETWEEN进行日期比较):< / p>

SELECT COUNT(id) FROM logs
 WHERE date >= CURDATE()
   AND date < DATE_ADD(CURDATE(), INTERVAL 1 DAY);

如果您的意思是&#34;在过去24小时内#34;,您的查询将更像是这样:

SELECT COUNT(id) FROM logs
 WHERE date >= DATE_SUB(NOW(), INTERVAL 1 DAY);

希望这有帮助。

根据以下评论进行编辑

如果date列是Unix时间戳值(存储为INT(11)?),则查询应如下所示:

SELECT COUNT(id) FROM logs
 WHERE date >= UNIX_TIMESTAMP(CURDATE());

还可以执行以下操作来获取过去24小时内的记录:

SELECT COUNT(id) FROM logs
 WHERE date >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY));

<强> SQL Fiddle here