Estoy intentando filtrar usuarios por fecha, pero no puedo hasta que pueda encontrar la primera y la última fecha de los usuarios en la base de datos. Si bien puedo hacer que mi secuencia de comandos filtre los dups más tarde, quiero hacerlo desde el principio usando distinct
de Django, ya que reduce significativamente. ProbéDjango: obtenga fechas distintas de la marca de tiempo
User.objects.values('install_time').distinct().order_by()
pero desde install_time
es una timestamp
, que incluye la fecha y la hora (que realmente no importa). Como resultado, los únicos que filtra son las fechas en las que podríamos recuperar las fechas de instalación de los usuarios múltiples pero no los tiempos.
¿Alguna idea de cómo hacer esto? Estoy ejecutando esto usando Django 1.3.1, Postgres 9.0.5 y la última versión de psycopg2.
EDIT: me olvidó añadir el tipo de datos de install_time
:
install_time = models.DateTimeField()
EDIT 2: Aquí hay un ejemplo de salida de la cáscara de Postgres, junto con una breve explicación de lo que quiero:
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)
soy consciente de Manager.raw
, sino que más bien django.db.connection.cursor
usuario para escribir la consulta directamente desde Manager.raw
devuelve un RawQuerySet
que, IMO, es peor que simplemente escribir la consulta SQL de forma manual e iterar.
duplicado Posible de http://stackoverflow.com/questions/3388559/django-model-group-by-datetimes-date – thatwasbrilliant
@thatwasbrilliant Eso era exactamente lo que yo estaba buscando; ¡Gracias! Es extraño que solo tomó 30 minutos en SO cuando tomó 2 horas en Google sin resultado. – Edwin
Necesita trabajar en sus habilidades de Google :) – thatwasbrilliant