我正在尝试分别获取今天和昨天的访客数量。
我的问题是我使用自己的日期和时间格式,它保存在我的数据库中,如下所示:HH:MM DD.MM.YYYY,现在为了获取昨天的访问者,我尝试了以下操作:
$sql="SELECT COUNT(*) as count FROM lst_visitors WHERE country = '$country' AND DATE(visits) = DATE_SUB(CURDATE(),INTERVAL 1 DAY)";
今天:
$sql="SELECT COUNT(*) as count FROM lst_visitors WHERE country = '$country' AND DATE(visits) = DATE(NOW())";
但这只是显示所有内容都是 0。
然后我尝试了:
$today = date("H:i d.m.Y");
$sql="SELECT COUNT(*) as count FROM lst_visitors WHERE country = '$country' AND DATE(visits) = DATE($today())";
但这不会输出任何内容。
最佳答案
您应该将其存储为datetime
类型,并且您应该将它们转换为这样的类型。同时,您可以使用STR_TO_DATE
:
SELECT STR_TO_DATE('15:50 27.03.2013', '%H:%i %d.%m.%Y')
结果
| STR_TO_DATE('15:50 27.03.2013', '%H:%I %D.%M.%Y') | ----------------------------------------------------- | March, 27 2013 15:50:00+0000 |
Applying your fields:
$sql="SELECT COUNT(*) as count FROM lst_visitors WHERE country = '$country'
AND DATE(STR_TO_DATE(visits, '%H:%i %d.%m.%Y')) = DATE(NOW())";
$sql="SELECT COUNT(*) as count FROM lst_visitors WHERE country = '$country'
AND DATE(STR_TO_DATE(visits, '%H:%i %d.%m.%Y')) = DATE_SUB(CURDATE(),INTERVAL 1 DAY)";
关于php - 日期间隔,计数之间 - 使用自己的日期/时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15661100/