Tengo un conjunto de consultas Django donde quiero agrupar por valor de fecha created_at ( created_at es un campo de fecha y hora).
(Activity.objects .values('created_at__date') .annotate(count=Count('id')) .values('created_at__date', 'count') ) Estoy siguiendo la respuesta aceptada aquí que tiene sentido. Sin embargo, la consulta devuelve None para todos los valores created_at__date . Cuando lo cambio a created_at , muestra el valor real.
La consulta SQL generada:
SELECT django_datetime_cast_date("activity"."created_at", 'UTC', 'UTC'), COUNT("activity"."id") AS "count" FROM "activity" GROUP BY django_datetime_cast_date("activity"."created_at", 'UTC', 'UTC')Estoy trabajando con la base de datos sqlite3 local, algunos registros de muestra de la base de datos (se eliminan las otras columnas de la tabla):
2,2021-07-30T11:44:09.984439+00:00 3,2021-07-30T11:44:29.217916+00:00 4,2021-07-30T11:44:43.598702+00:00 5,2021-08-03T20:53:48.482419+00:00 6,2021-08-04T22:19:52.810907+00:00 7,2021-08-05T17:25:29.646553+00:00 8,2021-08-05T17:25:33.425523+00:00 9,2021-08-05T17:26:22.169369+00:00 10,2021-08-05T17:50:26.585485+00:00 11,2021-08-10T16:20:38.839126+00:00 12,2021-08-10T17:38:00.557487+00:00 13,2021-08-11T16:09:30.470890+00:00 14,2021-08-11T16:09:34.164904+00:00 15,2021-08-12T15:43:18.819458+00:00 16,2021-08-12T16:19:30.123575+00:00 18,2021-08-15T12:55:20.660137+00:00 24,2021-08-18T18:21:12.153480+00:00 25,2021-08-18T19:18:37.432911+00:00La razón es que la base de datos sqlite3 no puede almacenar información de la zona horaria ya que no es compatible con la fecha y/o la hora integradas. Y dado que la fecha de muestra contiene información de la zona horaria, sqlite3 no puede extraer la fecha del campo de fecha y hora y muestra Ninguno.
formato correcto para sqlite3
2021-11-29 12:40:20.021350