LINUX.ORG.RU

PostgreSQL


0

0

Как сделать выборку по полю timestamp за месяц? в mysql можно было сделать просто where date like '2004-10%' но вот как сделать это в постргесе не понял единственно что приходи в голову это
date between '2004-10-01 00:00:00' and '2004-10-30 23:59:59';
но тут есть одно но, это высчитывать количесто дней в месяце чго делать естественно не охото =)

anonymous
Ответ на: комментарий от anonymous

Только на большом кол-ве записей тормоза немерянные будут. Если в postgresql есть возможность создать функциональный индекс, то его надо создать, если нет, то создать дополнительное поле, в котором будут хранится год и месяц (например, в такой форме '200410').

anonymous
()
Ответ на: комментарий от anonymous

Ну, если функциональных индексов нет. А можно даже если они есть, так как для понимания иногда проще.

Можно так же разделить год и месяц, все зависит от того как данные тебе анализировать надо.

anonymous
()
Ответ на: комментарий от archont

А за первое ноября нам данные зачем? Или ты хотел вспомнить кол-во дней в октябре и никак не вспомнил? Лучше один раз нормально сделать, и потом писать простые (относительно) запросы, чем сделать просто, и потом мучаться с многоэтажными.

anonymous
()
Ответ на: комментарий от anonymous

А за первое ноября данные и не выберутся. На то и указание between.
И время, если не указано, по умолчанию считается именно 00:00.

archont ★★★
()
Ответ на: комментарий от archont

00:00 --- это уже новые сутки, так что, если данные будут, то выберутся.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.