每天,每周,每月,每年打印数据

时间:2013-10-30 18:52:22

标签: mysql timestamp

我有以下格式的数据。

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

我想要获取的是

  1. 每日总IP(系统日期)的报告
  2. 每周有总IP的报告(如果今天是星期二,我需要本周而不是过去7天)
  3. 每月有总IP的报告(当月......如果今天是18,那么从本月1日到18日)
  4. 每年有总IP的报告
  5. 知道如何完成这项工作吗?

2 个答案:

答案 0 :(得分: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());

希望它有所帮助。

答案 1 :(得分:-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());

Demo at sqlfiddle

注意:

本周和当月的

YEAR(myTime) = YEAR(NOW())起着非常重要的作用。

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