Berikut adalah teknik yang menarik - Saya memanfaatkan prosedur startswith seperti yang diterapkan dengan Django pada MySQL untuk mencapai hasil hanya mencari datetime hanya melalui tanggal. Pada dasarnya, ketika Django melakukan pencarian dalam database, ia harus melakukan konversi string untuk objek penyimpanan DATETIME MySQL, sehingga Anda dapat memfilternya, meninggalkan bagian stempel waktu tanggal - dengan cara itu% LIKE% hanya cocok dengan tanggal objek dan Anda akan mendapatkan setiap cap waktu untuk tanggal yang diberikan.
datetime_filter = datetime(2009, 8, 22)
MyObject.objects.filter(datetime_attr__startswith=datetime_filter.date())
Ini akan melakukan kueri berikut:
SELECT (values) FROM myapp_my_object \
WHERE myapp_my_object.datetime_attr LIKE BINARY 2009-08-22%
LIKE BINARY dalam hal ini akan cocok dengan segalanya untuk tanggal, tidak peduli cap waktu. Termasuk nilai-nilai seperti:
+---------------------+
| datetime_attr |
+---------------------+
| 2009-08-22 11:05:08 |
+---------------------+
Semoga ini membantu semua orang sampai Django keluar dengan solusi!