Ich versuche, Benutzer nach Datum zu filtern, kann aber nicht, bis ich das erste und letzte Datum der Benutzer in der Datenbank finden kann. Während ich später mit meinem Skript die Tüpfelchen herausfiltern kann, möchte ich es von Anfang an mit Djangos distinct
machen, da es deutlich reduziert wird. Ich habe es versucht
aber da install_time
ein timestamp
ist, enthält es das Datum UND die Zeit (was mir eigentlich egal ist). Daher sind die einzigen Daten, die herausgefiltert werden, Daten, bei denen wir die Installationsdaten mehrerer Benutzer abrufen können, nicht jedoch die Zeiten .
Irgendeine Idee, wie man das macht? Ich verwende dies mit Django 1.3.1, Postgres 9.0.5 und der neuesten Version von psycopg2.
BEARBEITEN: Ich habe vergessen, den Datentyp von install_time
:
BEARBEITEN 2: Hier ist eine Beispielausgabe von der Postgres-Shell, zusammen mit einer kurzen Erklärung dessen, was ich will:
%Vor% Ich kenne Manager.raw
, würde aber lieber django.db.connection.cursor
verwenden, um die Abfrage direkt zu schreiben, da Manager.raw
eine RawQuerySet
zurückgibt, was IMO schlimmer ist, als die SQL-Abfrage manuell zu schreiben und zu wiederholen.
Ich habe beschlossen, das zu schließen, da es eine Art diese Frage ist Hier ist die Antwort, wenn Sie den Link nicht mit freundlicher Genehmigung von nosklo aufrufen möchten.
Erstellen Sie eine kleine Funktion, um nur das Datum zu extrahieren: def extract_date (Einheit): 'Extrahiert das Startdatum von einer Entität' Rückgabe entity.start_time.date ()
Dann können Sie es mit itertools.groupby
verwenden:
Tags und Links python django django-models