Я пытаюсь фильтровать пользователей по дате, но не могу, пока не найду первую и последнюю дату пользователей в db. В то время как позже я могу отключить отлаживающие файлы script, я хочу сделать это с самого начала, используя Django distinct
, поскольку он значительно сокращается. Я попробовал
User.objects.values('install_time').distinct().order_by()
но поскольку install_time
является timestamp
, он включает дату и время (что мне действительно неинтересно). В результате единственными, которые он отфильтровывает, являются даты, где мы могли бы получить несколько установочных дат пользователей, но не раз.
Есть идеи, как это сделать? Я запускаю это с помощью Django 1.3.1, Postgres 9.0.5 и последней версии psycopg2.
EDIT: Я забыл добавить тип данных install_time
:
install_time = models.DateTimeField()
РЕДАКТИРОВАТЬ 2: Вот несколько примеров из оболочки Postgres, а также быстрое объяснение того, что я хочу:
2011-09-19 00:00:00
2011-09-11 00:00:00
2011-09-11 00:00:00 <--filtered out by distinct() (same date and time)
2011-10-13 06:38:37.576
2011-10-13 00:00:00 <--NOT filtered out by distinct() (same date but different time)
Я знаю Manager.raw
, но скорее пользователь django.db.connection.cursor
должен писать запрос напрямую, так как Manager.raw
возвращает RawQuerySet
, который, IMO, хуже, чем просто запись запроса SQL вручную и итерация.