如何获取mysql表并按日期排序

时间:2010-10-04 07:29:17

标签: php mysql

嘿伙计们,为了完成我的统计脚本,我需要显示每日访问

所以,如果我想今天和昨天访问我使用此代码:

    $timestamp = time();
    $today = date("Y-m-d") ;
    $yesterday = date("Y-m-d", strtotime("-1 day"));
    $yesterday_1 = date("Y-m-d", strtotime("-2 day"));


    list($TotalVisitsToday) = $db->sql_fetchrow($db->sql_query("SELECT COUNT(DISTINCT ip_address) AS TotalVisitsToday FROM table_tracking  WHERE date_time BETWEEN '$yesterday' AND '$today'"));

    list($TotalVisitsYesterday) = $db->sql_fetchrow($db->sql_query("SELECT COUNT(DISTINCT ip_address) AS TotalVisitsYesterday FROM table_tracking  WHERE date_time BETWEEN '$yesterday_1' AND '$yesterday'"));
好的,现在我有今天的vists和昨天

但我想列出保存的所有日期和ips的数量

我知道我应该使用一段时间和句子,但不知道如何实现这一点!

数据库提示:

正在使用date_time值保存ip_addresses,现在我有10,000个ips在几天内访问我的页面

我希望显示保存在我的mysql表中的每一天的ips计数

2 个答案:

答案 0 :(得分:1)

按日期分组date_time列的一部分应该可以解决您的问题。这样的事情应该做:

select date(date_time), count(distinct ip_addresses)
from table_tracking
group by date(date_time)

答案 1 :(得分:1)

怎么样?
SELECT DATE(date_time) as date, COUNT(DISTINCT ip_address) AS TotalVisitsToday FROM table_tracking GROUP BY date 

我现在没有数据库来测试from Mysql manual

DATE(表达式)

提取日期或日期时间表达式expr的日期部分。

mysql> SELECT DATE('2003-12-31 01:02:03');
        -> '2003-12-31'

希望这有帮助

乔瓦尼