【发布时间】:2013-10-06 22:18:49
【问题描述】:
我需要按日期对项目进行分组和计数。我在 sqlite 上得到了以下内容:
Books.objects.filter(state="new").extra({"published_at": "date(published_at)"}).values("published_at").annotate(counter=Count("pk"))
但是extra() 和sql 语句的使用不能在其他dbms 上移植。例如上面的不适用于mysql。 如何对 sqlite、postgresql 和 mysql 进行有效查询?
【问题讨论】:
-
你是如何按日期计算的。看来您是按 pk 计数的,它始终为 1。另外,您为什么需要
"date(published_at)"。 Django 的Datetime字段已经提供了一个日期时间对象,因此无需再次转换为日期。 -
因为 published_at 是一个时间戳,我需要按天计算图书。
标签: mysql django sqlite postgresql