2011-12-21 9 views
0

私は自分で解決できない問題があります。最良のことは、mysqlから直接行うことができれば可能ですが、もしそうでなければ、PHPから計算することも良いことです。日 - datetimeカラムの統計を取得する - mysql/php

私は3列持つテーブルがあります値

今の時間値は、日時(例:2012年11月3日0時13分12秒)で、ID、時間を

私が作成したいです過去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
2012年12月18日午前3時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

私は誰かがアドバイスを助けることができると思います

$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"]; 
    } 

:3210

は現在、私はこれを(抜粋最後の7日間の記録)があります。 ありがとうございます! 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)を使用して、月によって、たとえば、どのようにグループ番号を変更することは非常に簡単。また、SELECT DAYNAME(date)を実行することで、MySQLのフィールドに日付の名前を表示させることもできます。利用できる機能の詳細については、MySQL User Guide on Date and Time functionsを参照してください。

+1

ありがとう、私が探していたものです!私はDATE_FORMAT(date、 'format')も使用しています。年/月も取得したいからですが、完璧です! – BlasterGod

関連する問題