Я пытаюсь отфильтровать пользователей по дате, но не могу, пока не найду первую и последнюю дату пользователей в БД. Хотя мой скрипт может отфильтровать дубликаты позже, я хочу сделать это с самого начала, используя Django distinct
, так как он значительно сокращает. Я пытался
User.objects.values('install_time').distinct().order_by()
, но, поскольку install_time
- это timestamp
, оно включает дату и время (которые меня не волнуют). В результате отфильтровываются только даты, когда мы можем получить даты установки нескольких пользователей , но не времена .
Есть идеи, как это сделать? Я использую Django 1.3.1, Postgres 9.0.5 и последнюю версию psycopg2.
РЕДАКТИРОВАТЬ: Я забыл добавить тип данных 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-запроса вручную и повторение.