0

我正在尝试分别统计今天和昨天的访客人数。

我的问题是我使用自己的日期和时间格式,它像这样保存在我的数据库中: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())";

但这不会输出任何东西。

4

1 回答 1

1

您应该将其存储为一种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') |
-------------------------------------------------- ---
| 2013 年 3 月 27 日 15:50:00+0000 |

应用你的领域:

$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)";
于 2013-03-27T14:17:06.143 回答