[英]How to display all records from today's UNIX_TIMESTAMP
I'm trying to display all attacks which have happened today. 我正在尝试显示今天发生的所有攻击。 This is the current SQL I have in my php page. 这是我在php页面中拥有的当前SQL。 However it doesn't display how many have happened today. 但是,它不会显示今天发生了多少次。
$TodayAttacks = $odb->query("SELECT COUNT(id) FROM `logs` WHERE `date` BETWEEN DATE_SUB(CURDATE(), INTERVAL '-1' DAY) AND UNIX_TIMESTAMP()")->fetchColumn(0);
If by "today" you mean "since midnight today", your query should look something like this: 如果到“今天”是指“从今天午夜开始”,则查询应类似于以下内容:
SELECT COUNT(id) FROM logs
WHERE date >= CURDATE();
If there is a possibility of date values in the log greater than today's date (hey, weird stuff happens!) then you want this (I advise against using BETWEEN
for date comparisons): 如果日志中的日期值有可能大于今天的日期(嘿,发生奇怪的事情!),那么您想BETWEEN
(我建议不要将BETWEEN
用于日期比较):
SELECT COUNT(id) FROM logs
WHERE date >= CURDATE()
AND date < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
If you mean "within the last 24 hours", your query would look more like this: 如果您的意思是“过去24小时内”,则查询看起来像这样:
SELECT COUNT(id) FROM logs
WHERE date >= DATE_SUB(NOW(), INTERVAL 1 DAY);
Hope this helps. 希望这可以帮助。
EDITED per comments below 根据下面的评论进行编辑
If the date
column is a Unix timestamp value (stored as INT(11)
?) then the query should look something like the following: 如果date
列是Unix时间戳记值(存储为INT(11)
?),则查询应类似于以下内容:
SELECT COUNT(id) FROM logs
WHERE date >= UNIX_TIMESTAMP(CURDATE());
One could also do the following to get records from the last 24 hours: 还可以执行以下操作以获取最近24小时的记录:
SELECT COUNT(id) FROM logs
WHERE date >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.