select count(*) from w3a_log_monitor_attack where attack_date like '%2013-01%' and attack_user='192.168.31.135' union all select count(*) from w3a_log_monitor_attack where attack_date like '%2013-02%' and attack_user='192.168.31.135' union all select count(*) from w3a_log_monitor_attack where attack_date like '%2013-03%' and attack_user='192.168.31.135' union all select count(*) from w3a_log_monitor_attack where attack_date like '%2013-04%' and attack_user='192.168.31.135' union all select count(*) from w3a_log_monitor_attack where attack_date like '%2013-05%' and attack_user='192.168.31.135';
復(fù)制代碼
表名:
w3a_log_monitor_attack
復(fù)制代碼
字段意思:
attack_date 日期字段
attack_user 用戶字段
復(fù)制代碼
作者: tiankafeiwu 時間: 2013-11-19 13:54
SELECT COUNT(*),CONCAT(YEAR(attack_date),'-',MONTH(attack_date),'-',DAYOFMONTH(attack_date)) FROM w3a_log_monitor_attack WHERE attack_user='192.168.31.135' and attack_date>DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY) GROUP BY CONCAT(YEAR(attack_date),'-',MONTH(attack_date),'-',DAYOFMONTH(attack_date))
SELECT COUNT(*),CONCAT(YEAR(attack_date),'-',MONTH(attack_date)) FROM w3a_log_monitor_attack WHERE attack_user='192.168.31.135' GROUP BY CONCAT(YEAR(attack_date),'-',MONTH(attack_date))
復(fù)制代碼
2:全年按天分組,如果要當(dāng)月就加個where時間條件即可:
SELECT COUNT(*),CONCAT(YEAR(attack_date),'-',MONTH(attack_date),'-',DAYOFMONTH(attack_date)) FROM w3a_log_monitor_attack WHERE attack_user='192.168.31.135' GROUP BY CONCAT(YEAR(attack_date),'-',MONTH(attack_date),'-',DAYOFMONTH(attack_date))
復(fù)制代碼
3:當(dāng)日24小時,即當(dāng)天0點到當(dāng)前時間,限當(dāng)天:
SELECT COUNT(*),HOUR(attack_date) FROM w3a_log_monitor_attack WHERE attack_user='192.168.31.135' GROUP BY HOUR(attack_date) WHERE attack_date > DATE(NOW())
mysql> SELECT COUNT(*),HOUR(attack_date) FROM w3a_log_monitor_attack WHERE attack_user='192.168.31.135' GROUP BY HOUR(attack_date) WHERE attack_date > DATE(NOW());
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE attack_date > DATE(NOW())' at line 1
復(fù)制代碼
作者: wangjj20 時間: 2013-11-20 15:38
當(dāng)月:
select count(*),date_format(attack_date,'%Y-%m-%s') as day from w3a_log_monitor_attack
where w3a_log_monitor_attack >= concat(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),' 00:00:00')
group by day;
當(dāng)日:
select count(*),date_format(attack_date,'%Y-%m-%s %H') as hour from w3a_log_monitor_attack
where w3a_log_monitor_attack >= concat(CURDATE(),' 00:00:00')
group by hour;作者: tiankafeiwu 時間: 2013-11-20 16:54 本帖最后由 tiankafeiwu 于 2013-11-20 16:55 編輯
mysql> SELECT COUNT(*),HOUR(attack_date) FROM w3a_log_monitor_attack WHERE attack_user='192.168.31.135' and attack_date > DATE(NOW()) GROUP BY HOUR(attack_date) ;
把第二個where改成and就行了,疏忽了 回復(fù) 4# 墨跡哥
mysql> select count(*),date_format(attack_date,'%Y-%m-%s') as day from w3a_log_monitor_attack
-> where w3a_log_monitor_attack >= concat(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),' 00:00:00')
-> group by day;
ERROR 1054 (42S22): Unknown column 'w3a_log_monitor_attack' in 'where clause'
mysql>
mysql>
mysql>
mysql> select count(*),date_format(attack_date,'%Y-%m-%s') as day from w3a_log_monitor_attack where w3a_log_monitor_attack >= concat(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),' 00:00:00') group by day;
ERROR 1054 (42S22): Unknown column 'w3a_log_monitor_attack' in 'where clause'
mysql> SELECT COUNT(*),HOUR(attack_date) FROM w3a_log_monitor_attack WHERE attack_user='192.168.56.101' and attack_date > DATE(NOW()) GROUP BY HOUR(attack_date) ;
Empty set (0.01 sec)
mysql>
mysql>
mysql> SELECT COUNT(*),CONCAT(YEAR(attack_date),'-',MONTH(attack_date),'-',DAYOFMONTH(attack_date)) FROM w3a_log_monitor_attack WHERE attack_user='192.168.31.135' and attack_date>DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY) GROUP BY CONCAT(YEAR(attack_date),'-',MONTH(attack_date),'-',DAYOFMONTH(attack_date));
SELECT COUNT(*),CONCAT(YEAR(attack_date),'-',MONTH(attack_date)) FROM w3a_log_monitor_attack WHERE attack_user='192.168.31.135' GROUP BY CONCAT(YEAR(attack_date),'-',MONTH(attack_date))
復(fù)制代碼
查當(dāng)月的30/31天的:
SELECT COUNT(*),CONCAT(YEAR(attack_date),'-',MONTH(attack_date),'-',DAYOFMONTH(attack_date)) FROM w3a_log_monitor_attack WHERE attack_user='192.168.31.135' and attack_date>DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY) GROUP BY CONCAT(YEAR(attack_date),'-',MONTH(attack_date),'-',DAYOFMONTH(attack_date))
復(fù)制代碼
查小時的(24小時):
SELECT COUNT(*),HOUR(attack_date) FROM w3a_log_monitor_attack WHERE attack_user='192.168.31.135' and attack_date > DATE(NOW()) GROUP BY HOUR(attack_date) ;