如何使用Django ORM在datetimefield中仅按日期查询

如何使用Django ORM在datetimefield中仅按日期查询,django,django-orm,Django,Django Orm,我有一个带有DataTimeField的表。我想得到DateTimeField=特定日期的所有对象的列表(忽略时间部分) SQL将类似于: select * from tblname where date(start)='2011-01-14' 有可能让ORM进行这种查询吗 我可以做一个开始范围(…)类型的查询,但我想知道我是否可以用另一种方式来做。来自: 这适用于日期和日期时间 MyModel.object.filter(start__year=2011, start__month=01,

我有一个带有DataTimeField的表。我想得到DateTimeField=特定日期的所有对象的列表(忽略时间部分)

SQL将类似于:

select * from tblname where date(start)='2011-01-14'
有可能让ORM进行这种查询吗

我可以做一个开始范围(…)类型的查询,但我想知道我是否可以用另一种方式来做。

来自:

这适用于日期和日期时间

MyModel.object.filter(start__year=2011, start__month=01, start__day=14)
这个查询的问题是,如果您的DB不支持带有函数的索引(Hello MySQL),那么您的查询就不完善

另一种方法是添加一个新字段
start\u date=models.DateField(…)
并重载
save(…)
方法以正确设置字段,或者如果您更像是数据库端的开发人员,则对同一函数使用触发器,然后可以执行以下操作:

MyModel.object.filter(start_date=date(2011, 1, 13))

我想你在第一个代码示例中指的是单等号。
MyModel.object.filter(start_date=date(2011, 1, 13))