2011-09-26 86 views
4

如果我有一個MySQL查詢按周合計不等的情況,如:如何使用GROUP BY(日期)在MySQL在一週的某一天開始

select sum(keyword1), sum(keyword2), sum(keyword3), dateTime 
from myTable 
group by week(dateTime) 
order by dateTime asc 

我發現周出現從星期天開始。

這可以更改爲星期一嗎?

列dateTime是MySQL時間戳格式2011-09-26 12:34:32。

回答

4
mysql> select week('2011-09-25', 1); 
+-----------------------+ 
| week('2011-09-25', 1) | 
+-----------------------+ 
|     38 | 
+-----------------------+ 

mysql> select week('2011-09-25', 0); 
+-----------------------+ 
| week('2011-09-25', 0) | 
+-----------------------+ 
|     39 | 
+-----------------------+ 

所以除去有一天,http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_default_week_format

+0

所以這是一個系統價值?這就說得通了。 –

+0

FAO Ajreal:謝謝。我在MySQL Workbench的「選項」中找到了它。 –

5

您希望週日屬於前一週所以從它

select sum(keyword1), sum(keyword2), sum(keyword3), week(DATE_SUB(dateTime, INTERVAL 1 DAY)) my_week 
from myTable 
group by week(DATE_SUB(dateTime, INTERVAL 1 DAY)) 
order by my_week asc 
+0

謝謝但是這給:錯誤代碼:1064您有一個錯誤在你的SQL語法中;檢查對應於您的MySQL服務器版本的手冊,以在'DAYS'附近使用正確的語法my_week from myTable –

+0

there there missing a parenthese,sorry ;-) – mb14

+0

沒問題。儘管MySQL仍然給了我相同的錯誤。 –

相關問題