Hier ist eine interessante Technik-- Ich nutzte das startswith-Verfahren, wie es mit Django auf MySQL implementiert wurde, um das Ergebnis zu erzielen, nur nach einem Datum durch nur das Datum zu suchen. Im Grunde, wenn Django die Suche in der Datenbank durchführt, muss es eine String-Konvertierung für das DATETIME-MySQL-Speicherobjekt durchführen, so dass Sie darauf filtern können und den Zeitstempel des Datums weglassen - so entspricht% LIKE% nur dem Datum Objekt und Sie erhalten jeden Zeitstempel für das angegebene Datum.
datetime_filter = datetime(2009, 8, 22)
MyObject.objects.filter(datetime_attr__startswith=datetime_filter.date())
Dies wird die folgende Abfrage ausführen:
SELECT (values) FROM myapp_my_object \
WHERE myapp_my_object.datetime_attr LIKE BINARY 2009-08-22%
Die LIKE BINARY in diesem Fall wird alles für das Datum übereinstimmen, egal, die Zeitstempel. Einschließlich Werte wie:
+---------------------+
| datetime_attr |
+---------------------+
| 2009-08-22 11:05:08 |
+---------------------+
Hoffentlich hilft dies jedem bis Django mit einer Lösung herauskommt!
Dies ist ein von Belästigungen von Django. Wenn man bedenkt, dass dies ein einfacher und gebräuchlicher Anwendungsfall ist, gibt es keinen einfachen Weg, dies zu erreichen. – rubayeet