2010-09-07 52 views
0

我有一個Web任務來計算數據庫中的一些數據。我必須每天,每週和每月統計這些數據。mysql:哪個更好使用DAY()或WEEK()?

對於每週,我仍然困惑着決定我應該使用哪種MySQL語法來處理這種情況。 有兩種解決此問題的建議:使用DAY()WEEK()

我希望這種語法不受混亂的東西的限制。應該宣佈月份和月末的第一天,或者在週日或週一開始等,我希望每次都可以使用罐(但是每週都會關注)。

我可以使用哪一個? DAY()或WEEK()?

回答

0

每週一期的統計數據,你需要決定是否要你每週的統計數據,從週一運行至週日,或從週日到週六。要麼可以支持。

最終,您可能會將YEAR(datefield)WEEK(datefield, 1)分組。當涉及每月排序時,您將按YEAR(datefield)MONTH(datefield)進行分組。對於日常統計,如果datefield存儲在DATE類型中,那麼您可以簡單地按該組進行分組;如果您也有時間,則將按YEAR(datefield)DAYOFYEAR(datefield)將值分組。

+0

怎麼樣在這個http://stackoverflow.com/questions/3640729/counting-data-and-grouping-by-week-in-mysql。它每週使用DAY()計數。有什麼不同? – klox 2010-09-07 07:17:25

+0

@ klox:我應該去倒下這個答案。 DAY()函數是DAYOFMONTH的同義詞。這意味着所顯示的查詢會將1月1日至7日的數據與2月的第1-7天,以及數據所在的每年的3月和4月......數據進行分組。顯然,它回答了OP的問題,但我有些懷疑當他們的數據延續了幾年時他們會很高興。有多種方法來回答任何特定的查詢 - 這個問題和這個問題有一些區別。 – 2010-09-07 07:34:11

+0

@ klox:哦,我知道你是另一個Q的海報......我建議重新考慮你接受這個答案。 – 2010-09-07 07:35:35

0

本週應該在週日/週一開始,而不是在本月的第一天。所以,你應該較週一最好使用WEEK()爲一週的第一天:

WEEK(date, 1) 
+0

我想我只是在周關注。每7天計數一次。「1周和7天之間」不同的「周()」和「日()」有什麼不同? – klox 2010-09-07 07:08:16