php - mysql datetime如何获取按间隔日、周、月分组的数据

标签 php mysql datetime indexing group-by

当使用mysql datetime数据类型时,如何以最佳方式按间隔天、周、月获取数据组。 如果通过函数转换日期时间,则会导致索引不起作用。

我希望获得每天的访客数量。 并且还想获得几周内每周的总金额(访客)。 每月数据也需要。

1.我的 table

CREATE TABLE IF NOT EXISTS visitip (
                id INT(11) NOT NULL AUTO_INCREMENT,
                ip VARCHAR(20) NOT NULL,
                totalvisit INT(11) NOT NULL DEFAULT 0,
                lastvisit DATETIME NOT NULL,
                country VARCHAR(50) NOT NULL,
                countrycode CHAR(2) NOT NULL,
                city VARCHAR(50) NOT NULL,
                PRIMARY KEY (id),
                UNIQUE INDEX ipindex2 (ip),
                INDEX ccodeidx (countrycode),
                INDEX lastvisitidx (lastvisit)

2.我可以通过此查询获取今天的访问者

SELECT * FROM visitip WHERE lastvisit >= CONCAT(CURDATE(),' 00:00:00')

3.我怎样才能获得最后7天的时间?

4.我怎样才能坚持每个星期?

5.我怎样才能分别坚持几个月?

最佳答案

  • 对于今天的访客 SELECT * FROM Visitip WHERE DATE(lastvisit) = DATE(NOW());
  • 3.FOR获取最近7天的数据 SELECT * FROM Visitip WHERE DATE(lastvisit) > DATE(DATE_ADD(NOW(), INTERVAL -7 DAY));

  • SELECT * FROM Visitip WHERE DATE(lastvisit) > DATE(DATE_ADD(NOW(), INTERVAL -7 DAY));
  • 5. 选择月份(lastvisit),KAYIT_TARIH_SAAT FROM Visitip WHERE YEAR(lastvisit)= YEAR(NOW())和月份(lastvisit)= MONTH(NOW());

    SELECT * FROM Visitip WHERE DATE_FORMAT(lastvisit, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m')

    关于php - mysql datetime如何获取按间隔日、周、月分组的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27978698/

    相关文章:

    php - 如何从 MySQL Fetch 数组中获取前 3 个

    php - 单例结构

    php - 在html页面中调用PHP

    php - MySql 根据另外两个表的条​​件查找一个表中的数据

    mysql - 如果字段 'a' 像 'varchar' = true 那么 concat 'varchar, ' 预定的 string1'

    java - 将完整日期转换为短日期

    php - MySQL中如何将数据从一张表复制到另一张表?

    mysql - #1111 - 组功能使用无效

    python - 保存保存为 csv 的 pandas 数据框的数据类型

    python - 如何覆盖当前时间?