php - 获取最近7天内的注册用户

标签 php mysql sql

我正在尝试获取过去 7 天内的注册用户,因此我有用户表

+-----+------------+--------------+
| ID  | USERNAME   | ADDED        |
+-----+------------+--------------+
|  1  | Vlad       | 1347386878   |
+-----+------------+--------------+
|  2  | Test       | 1347386578   |
+-----+------------+--------------+

我尝试了下面的 sql,但输出为空,没有错误...并且我需要从今天到 7 天前的降序内容

SELECT date(added), COUNT(id) AS num_registered 
FROM users 
WHERE added < CURDATE() 
AND added > CURDATE() - INTERVAL 7 DAYS 
GROUP BY date(added) LIMIT 1, 7

有什么建议吗?

编辑:

$mysql_query = mysql_query('SELECT added, DATE(added), COUNT(id) AS num_reg FROM users_test WHERE added < (UNIX_TIMESTAMP() - (7 * 24 * 60 * 60)) GROUP BY DATE(added) LIMIT 1, 7') or die(mysql_error());
while($row = mysql_fetch_array($mysql_query))
{
    $month = date('F', $row['added']);
    $day = date('j', $row['added']);
    $textbuilder .= '
    <li>
        <a href="#" title="'.$month.' '.$day.', '.$row['num_reg'].' registered">
            <span class="label">'.$day.'</span>
            <span class="count" style="height: 20%">('.$row['num_reg'].')</span>
        </a>
    </li>';
}

表格:

CREATE TABLE IF NOT EXISTS `users_test` (
  `id` int(10) NOT NULL,
  `username` varchar(60) NOT NULL,
  `added` int(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `users_test` (`id`, `username`, `added`) VALUES
(1, 'Test', 1347303641),
(2, 'Test1', 1347217241),
(3, 'Test2', 1347130841),
(4, 'Test3', 1347044441);

最佳答案

ADDED 是一个 UNIX 时间戳值,因此只需执行以下操作:

SELECT
    DATE(Added), Count()
FROM
    Users
WHERE
    Added > ( UNIX_TIMESTAMP() - ( 7 * 24 * 60 * 60 ) )
GROUP BY
    DATE(Added)
LIMIT
    1, 7

请注意,这在您处理闰秒的情况下不起作用,因为它使用一天的近似定义为 24*60*60,但我想您可以接受那个。

关于php - 获取最近7天内的注册用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12375571/

相关文章:

mysql - 从具有外键约束的表中删除行

php - 如何存储用户的 session 数据

mysql - 从 MySQL 数据库最畅销产品中选择一个好、更好、最好的建议

php - 加入 MySQL 范围内的所有日期

php - 在纯 PHP 中执行 git pull

php - PHP 中的替代 if/else 语法叫什么?

python - 同一查询的 SQLAlchemy ORM 和 Text 返回不同的结果?

php - ORDER BY 在 php 的连接中无法正常工作

SQL JOIN 和不同类型的 JOIN

sql - 在 SQl 表中移动数据