2010-04-20 45 views
3

我有一個這樣的SQL表:sales(product,timestamp) 我想使用Open Flash Chart顯示圖表,但我不知道如何獲得最近12小時內的每小時總銷售額。 (時間戳欄是銷售日期)如何每小時分割記錄以便將它們顯示爲圖表?

舉例來說,我將以這樣的數組結束:array(12,5,8,6,10,35,7,23,4,5,2,16)每個數字是每小時的總銷售額。

注:我想使用PHP或只有MySQL的這一點。

感謝

回答

4

的SQL是

SELECT HOUR(timestamp), COUNT(product) 
FROM sales 
ORDER BY HOUR(timestamp) 

遍歷結果得到它到一個數組。

編輯:將要求地方條件unix時間戳

SELECT HOUR(timestamp), COUNT(product) 
FROM sales 
WHERE timestamp >= UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL 12 HOUR)) 
ORDER BY HOUR(timestamp) 
+0

+1僅用於sql版本。 – zaf 2010-04-20 18:14:12

+0

謝謝你,那是乾淨的 – Ryan 2010-04-20 18:25:24

+0

我忘記了,我希望它只能得到最新的12小時:D我認爲Keith的Date_sub不適用於我 – Ryan 2010-04-20 19:46:58

0

一些僞代碼:

foreach timestamp 
    use date('G',timestamp) to get hour 
    increment array value using the hour as key 

類似的規定。留意時區。

5
SELECT HOUR(timestamp),COUNT(*) 
FROM sales 
WHERE timestamp >= DATE_SUB(NOW(),INTERVAL 12 HOUR) 
GROUP BY HOUR(timestamp) 
+1

+1用於詳細閱讀問題:) – Unreason 2010-04-20 18:50:15

+0

timestamp> = DATE_SUB(NOW(),INTERVAL 12 HOUR)part doesn'工作:(也許是因爲它是一個Unix時間戳? – Ryan 2010-04-20 19:45:18

相關問題