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