-1

我有以下格式的数据。

iPAddress   + timeVisited
=========================
 varchar    +  timestamp

我想要获取的是

  1. 每天有总 IP 的报告(系统日期)
  2. 每周有总 IP 的报告(如果今天是星期二,我需要这周而不是持续 7 天)
  3. 每月有总 IP 的报告(当月......如果今天是 18,那么从本月的 1-18 开始)
  4. 每年拥有总 IP 的报告

知道如何完成这项工作吗?

4

2 回答 2

1

获取今天的所有记录

select iPAddress from table_name where date(timeVisited) = curdate();

获取当周的所有记录

select iPAddress from table_name where week(timeVisited) = week(curdate()) and year(timeVisited) = year(curdate());

获取当月的所有记录

select iPAddress from table_name where month(timeVisited) = month(curdate()) and year(timeVisited) = year(curdate());

并获取当年的所有记录

select iPAddress from table_name where year(timeVisited) = year(curdate());

希望能帮助到你。

于 2013-10-30T19:20:34.740 回答
-1

下面是我用的

当前的日期

select count(*) from myTable where DATE(myTime) = DATE(NOW());

本周

select count(*) from myTable where YEAR(myTime) = YEAR(NOW()) AND WEEKOFYEAR(myTime) = WEEKOFYEAR(NOW());

这个月

select count(*) from myTable where YEAR(myTime) = YEAR(NOW()) AND MONTH(myTime) = MONTH(NOW());

今年

select count(*) from myTable where YEAR(myTime) = YEAR(NOW());

在 sqlfiddle 演示

笔记:

YEAR(myTime) = YEAR(NOW())在本周和当月起着非常重要的作用。

将日期视为2012-10-302013-10-30

于 2013-10-30T19:05:48.510 回答