mysql: какой из них лучше использовать DAY () или WEEK ()? - PullRequest
0 голосов
/ 07 сентября 2010

У меня есть веб-задача для подсчета некоторых данных в БД. Я должен считать эти данные ежедневно, еженедельно и ежемесячно.

В течение недели я все еще не могу решить, какой синтаксис MySQL использовать в этом случае. Есть два варианта решения этой проблемы: использование DAY() или WEEK().

Я хочу, чтобы этот синтаксис не ограничивался запутанной вещью. Как следует объявить первое число месяца и конец месяца или начать в воскресенье или понедельник и т. Д. Я хочу каждый раз, когда банки для использования (но фокусируется на еженедельно).

Какой из них я могу использовать? ДЕНЬ () или НЕДЕЛЯ ()?

Ответы [ 2 ]

0 голосов
/ 07 сентября 2010

Для еженедельной статистики вам нужно решить, хотите ли вы, чтобы ваша еженедельная статистика запускалась с понедельника по воскресенье или с воскресенья по субботу.Любой из них может поддерживаться.

В конечном счете, вы, вероятно, будете группировать по YEAR(datefield) и WEEK(datefield, 1).Когда дело доходит до сортировки по месяцам, вы будете группировать по YEAR(datefield) и MONTH(datefield).Для ежедневной статистики, если datefield хранится в типе DATE, то вы можете просто сгруппировать по этому;если у вас есть время, вы сгруппируете значения по YEAR(datefield) и DAYOFYEAR(datefield).

0 голосов
/ 07 сентября 2010

Неделя должна начинаться в воскресенье / понедельник, а НЕ в первый день месяца. Таким образом, вы должны использовать WEEK() предпочтительно с понедельником в качестве первого дня недели:

   WEEK(date, 1) 
...