Вопросы по датам. MySql

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
UUU
Сообщения: 310
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

1. Узнать последний день месяца. Вернее 2 подряд. Кроме сложной конструкции вида:

select
date_format(concat(year(Now()),'-',month(Now()),'-31') - interval 1 month,'%Y-%m-%d'),
date_format(concat(year(Now()),'-',month(Now()),'-31'),'%Y-%m-%d')

Ничего на ум не пришло.
При чем, было замечено, что, например
31 декабря минус 1 месяц равно 30 ноября, а вот 30 ноября плюс 1 месяц равно.... 30 декабря.

2. Разбить год по неделям года для статистики никаких проблем, благо есть week, а вот как разбить, например по декадам месяца, чтобы сделать группировку по первым 10 дням месяца, вторым и т.д ?
Кроме как сначала получив даты этих декад и указав case ничего не придумал.
Yurich
Сообщения: 107
Зарегистрирован: 23 фев 2004, 19:07

Версия MySQL какая?
Если 4.1.1 и далее, то используй функцию LAST_DATE().
Yurich
Сообщения: 107
Зарегистрирован: 23 фев 2004, 19:07

UUU писал(а):2. ...а вот как разбить, например по декадам месяца, чтобы сделать группировку по первым 10 дням месяца, вторым и т.д ?
select truncate(date_format(MyDate,'%d')/10, 0) as dec, mycolumn group by dec

Если надо различать месяцы, то добавь еще и их в ключ.
UUU
Сообщения: 310
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

Сенкс.
Ответить