【问题标题】:mysql datetime how can get the data group by interval day, week, monthmysql datetime 如何按间隔日、周、月获取数据组
【发布时间】:2015-03-14 17:56:08
【问题描述】:

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

我想获得每天的访问者数量。 并且还想在几周内每周获得总和(访客)。 月度数据也需要。

1.我的桌子

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.我怎样才能每个人都坚持几个月?

【问题讨论】:

    标签: php mysql datetime indexing group-by


    【解决方案1】:
    1. 今天的访客 SELECT * FROM visitip WHERE DATE(lastvisit) = DATE(NOW());

    3.FOR 获取最后 7 天 SELECT * FROM visitip WHERE DATE(lastvisit) > DATE(DATE_ADD(NOW(), INTERVAL -7 DAY));

    1. SELECT * FROM visitip WHERE DATE(lastvisit) > DATE(DATE_ADD(NOW(), INTERVAL -7 DAY));

    5。 SELECT MONTH(lastvisit), KAYIT_TARIH_SAAT FROM visitip WHERE YEAR(lastvisit) = YEAR(NOW()) AND MONTH(lastvisit) = MONTH(NOW());

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 2014-11-16
      相关资源
      最近更新 更多