Да, я сказал бы, что Django является определенно способом пойти. Его модульная конструкция гарантирует, что Вы можете компоненты смешивания и подгонки (ORM, обрабатывая по шаблону механизм, отправку URL...) Вместо того, чтобы застрять с компонентом, который платформа предоставляет Вам, можно заменить его любой третьей стороной, эквивалентной вместо этого.
Разобрался ... это немного громоздко, но вот оно.
FROM_DAYS(TO_DAYS(TIMESTAMP) -MOD(TO_DAYS(TIMESTAMP) -1, 7))
И, если ваши бизнес-правила гласят, что ваши недели начинаются с понедельника, измените -1
на -2
.
Править
Прошли годы, и я наконец нашел время, чтобы это написать. http://www.plumislandmedia.net/mysql/sql-reporting-time-intervals/
Я еще не написал достаточно большого проекта, чтобы потребовать систему сборки, поэтому достаточно простого build.sh
.
Вы можете использовать $ GOROOT
, $ GOARCH
и $ GOOS
, чтобы определить, что вам нужно:
jurily@jurily ~ $ env | grep GO
GOARCH=amd64
GOROOT=/home/jurily/go
GOOS=linux
Если для Go достаточно, мне достаточно .
если это то, что желательно. Подход YEAR () / WEEK ()
, первоначально предложенный в этом ответе, имеет эффект разделения агрегированных данных для таких «трансграничных» недель на две: одна с предыдущим годом, одна с новым годом. YEAR () / WEEK ()
лучше . Вы можете получить объединенный номер года и недели (200945) с помощью функции YEARWEEK () . Если я правильно понимаю вашу цель, это должно позволить вам сгруппировать многолетние данные.
Если вам нужна фактическая временная метка для начала недели, это не так хорошо:
DATE_SUB( field, INTERVAL DAYOFWEEK( field ) - 1 DAY )
Для ежемесячного заказа вы можете рассмотреть LAST_DAY () функция - сортировка будет по последнему дню месяца, но это должно быть эквивалентно сортировке по первому дню месяца ... не так ли?
Просто добавьте это в избранное:
DATE_FORMAT($yourDate, \'%X %V\') as week
И
group_by(week);