亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 查詢當(dāng)年/當(dāng)月/當(dāng)日數(shù)據(jù)。 [打印本頁]

作者: 墨跡哥    時間: 2013-11-19 13:54
標(biāo)題: 查詢當(dāng)年/當(dāng)月/當(dāng)日數(shù)據(jù)。
本帖最后由 墨跡哥 于 2013-11-19 13:54 編輯

目前需求:
1、當(dāng)年的12個月的數(shù)據(jù)。如果沒有數(shù)據(jù)則為0.
2、當(dāng)月的所有天數(shù)的數(shù)據(jù)。如果沒有數(shù)據(jù)則為0.(這里有三個情況,2月有的時候是28天或多少天的,還有就是30天和31天的,實在難弄就統(tǒng)計當(dāng)月所有數(shù)據(jù)。)
3、當(dāng)日的24小時內(nèi)的數(shù)據(jù),如果沒有數(shù)據(jù)則為0.

例子:
  1. 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ù)制代碼
表名:
  1. w3a_log_monitor_attack
復(fù)制代碼
字段意思:

  1. attack_date 日期字段
  2. attack_user 用戶字段
復(fù)制代碼

作者: tiankafeiwu    時間: 2013-11-19 13:54
  1. 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))
  2. 你真懶。。。。
復(fù)制代碼
回復(fù) 4# 墨跡哥


   
作者: 墨跡哥    時間: 2013-11-19 13:56
@tiankafeiwu  來吧。。。暴風(fēng)雨來的更猛烈點把。。
作者: tiankafeiwu    時間: 2013-11-19 14:42
本帖最后由 tiankafeiwu 于 2013-11-19 14:43 編輯

1:當(dāng)年所有有數(shù)據(jù)的月份(按月分組):
  1. 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時間條件即可:
  1. 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)天:
  1. 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())
復(fù)制代碼
2和3差不多。

沒有數(shù)據(jù)的0,你用程序控制下咯
作者: 墨跡哥    時間: 2013-11-20 14:33
回復(fù) 3# tiankafeiwu


    第一個可用。。。
    第二個要當(dāng)月所有天的。。。
    第三個報錯。。。
  1. 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());
  2. 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# 墨跡哥


   
作者: 墨跡哥    時間: 2013-11-20 17:39
回復(fù) 5# wangjj20
  1. mysql> select count(*),date_format(attack_date,'%Y-%m-%s') as day from w3a_log_monitor_attack
  2.     -> where w3a_log_monitor_attack >= concat(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),' 00:00:00')
  3.     -> group by day;
  4. ERROR 1054 (42S22): Unknown column 'w3a_log_monitor_attack' in 'where clause'
  5. mysql>
  6. mysql>
  7. mysql>
  8. 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;
  9. ERROR 1054 (42S22): Unknown column 'w3a_log_monitor_attack' in 'where clause'
復(fù)制代碼

作者: 墨跡哥    時間: 2013-11-20 17:42
回復(fù) 7# tiankafeiwu


    貌似都行了,我回頭加點數(shù)據(jù)試試。今天快下班了。。趕地鐵去。。。
  1. 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) ;
  2. Empty set (0.01 sec)

  3. mysql>
  4. mysql>
  5. 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));
  6. +----------+------------------------------------------------------------------------------+
  7. | COUNT(*) | CONCAT(YEAR(attack_date),'-',MONTH(attack_date),'-',DAYOFMONTH(attack_date)) |
  8. +----------+------------------------------------------------------------------------------+
  9. |      170 | 2013-11-5                                                                    |
  10. +----------+------------------------------------------------------------------------------+
  11. 1 row in set (0.01 sec)
復(fù)制代碼

作者: 墨跡哥    時間: 2013-11-20 17:46
@tiankafeiwu你看看還有沒有啥補充的,我把你的整理一下:

查當(dāng)年的12個月的:
  1. 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天的:
  1. 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小時):
  1. 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) ;
復(fù)制代碼

作者: wangjj20    時間: 2013-11-22 10:36
回復(fù) 8# 墨跡哥





    w3a_log_monitor_attack字段名搞錯了。。替換成attack_date
作者: 墨跡哥    時間: 2013-11-22 15:41
回復(fù) 11# wangjj20


    這次暫時木有分了。。下次給你補上。。
作者: 墨跡哥    時間: 2013-12-03 17:21
回復(fù) 2# tiankafeiwu


   

    大哥,當(dāng)天數(shù)據(jù)查詢有問題:
  1. mysql> SELECT COUNT(*),HOUR(time_start) FROM w3a_net_monitor_web_attack WHERE time_start > DATE(NOW()) GROUP BY HOUR(time_start) ;
  2. +----------+------------------+
  3. | COUNT(*) | HOUR(time_start) |
  4. +----------+------------------+
  5. |      163 |               16 |
  6. |      974 |               17 |
  7. +----------+------------------+
  8. 2 rows in set (0.00 sec)

復(fù)制代碼
查出來的數(shù)據(jù)根本不對。這查出的是很久之前的數(shù)據(jù),當(dāng)天根本沒有數(shù)據(jù)啊。。
作者: tiankafeiwu    時間: 2013-12-04 08:58
不可能,
  1. mysql> select DATE(NOW()) ;
  2. +-------------+
  3. | DATE(NOW()) |
  4. +-------------+
  5. | 2013-12-04  |
  6. +-------------+
  7. 1 row in set (0.00 sec)
  8. 這個條件限制了當(dāng)天0點以后的
復(fù)制代碼
要不就是你time_start格式有問題,或者有字段為空的什么的
回復(fù) 13# 墨跡哥


   
作者: 墨跡哥    時間: 2013-12-04 09:19
本帖最后由 墨跡哥 于 2013-12-04 09:19 編輯

回復(fù) 14# tiankafeiwu
  1. mysql> select * from w3a_net_monitor_web_attack limit 1
  2.     -> ;
  3. +----+--------------+---------------------+--------------------------+--------------+---------+
  4. | id | web_status   | time_start          | ip_address               | offer_status | user_id |
  5. +----+--------------+---------------------+--------------------------+--------------+---------+
  6. |  1 | 狀態(tài)異常     | 2013-11-26 17:53:25 | http://www.72891.cn |            1 |       1 |
  7. +----+--------------+---------------------+--------------------------+--------------+---------+
復(fù)制代碼
日期格式是標(biāo)準(zhǔn)的格式啊。。。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2