2011-12-21 114 views
0

我有一個問題,我不能自己解決。最好的情況是,如果可以直接從mysql執行操作,但如果沒有,則使用PHP進行計算也很好。獲取日期 - 日期時間列的統計信息 - mysql/php

我有一個有3列一個表:ID,時間,價值

現在時間值是日期時間(例如:2012年11月3日○點13分12秒)

我想創建過去7天的統計數字。假設我有7行,今天是2012-12-20。

這裏是行: 日期時間值
2012年12月20日○點12分12秒2
2012年12月20日4時06分15秒4
2012年12月20日3時12分14秒5
二○一二年十二月一十八日三點12分14秒7
2012年12月16日12時12分14秒3
2012年12月16日14點23分34秒2
2012年12月15日14時23分:34 9

如果我想得到最近7天的報告,它會是這樣的:

2012年12月14日 - >值= 0
2012年12月15日 - >值= 9

2012年12月16日 - >值= 5

2012-12- 17 - >值= 0

2012年12月18日 - >值= 7
2012年12月19日 - >值= 0

2012年12月20日 - >值= 11

目前我有這個(摘錄最後7天記錄):

$date=date("Y-m-d"); 
$date=date ("Y-m-d", strtotime ('-7 day' . $date)); 
$qry="select value,date from mytable where date>'$date'"; 
$res=mysql_query($qry) or die("Couldn't select Information : ".mysql_error()); 
while($row=mysql_fetch_array($res)) 
    { 
     echo $row["value"]; 
    } 

我希望有人能提供建議幫助。 在此先感謝! Vlad

回答

4

這應該比較容易使用MySQL解決。這與此問題非常相似:MySQL Query GROUP BY day/month/year

您需要更改查詢,以便獲取給定星期的所有記錄。

SELECT DAY(date) , SUM(value) 
FROM mytable 
WHERE WEEK(date) = WEEK(NOW()) 
GROUP BY DAY(date) 

它也很容易你怎麼組數字,例如,通過使用一個月來GROUP BY MONTH(date)改變。你也可以讓MySQL通過做SELECT DAYNAME(date)來顯示日期名稱。有關可用函數的更多詳細信息,請查看MySQL User Guide on Date and Time functions

+1

謝謝,正是我在找什麼!我正在使用DATE_FORMAT(日期,'格式'),因爲我想獲得年/月,但它是完美的! – BlasterGod 2011-12-21 21:29:25