Django ORM格式的日期和检查是否小于或等于

时间:2013-08-09 06:12:45

标签: python django django-orm

我正在使用Django 1.5。我创建了一个通用函数来使用ORM从数据库中获取数据 目前我正在将字典传递给此函数来过滤数据。请参阅以下代码

objTable.objects.values(*listArg).filter(**dictFilter)

这工作正常。现在我在其中一个表中有一个日期时间字段。我需要将它与日期进行比较,因此我需要一个如下所示的查询

where DATE(start_date)<= '2013-08-08'

目前检查小于或等于i的日期是否会传递像

这样的字典
{'start_date__lte':datetime.date.today()}

由于'start_date'是一个日期时间字段,其存储值如'2013-08-07 00:00:00'如何格式化此字段然后使用小于或等于?

3 个答案:

答案 0 :(得分:0)

不要使用类似'2013-08-08'的字符串而是使用python日期对象,您可以将字符串转换为类似

的日期
import datetime

{'start_date__lte': datetime.datetime.strptime('2013-08-08', '%Y-%m-%d').date()}

答案 1 :(得分:0)

使用datetime.combinedatetime对象生成date

{'start_date__lte': datetime.datetime.combine(datetime.date.today(), datetime.time())}

答案 2 :(得分:0)

我相信你可以做到这一点。如果你想在今天实时比较。

import datetime
{'start_date__lte':datetime.datetime.now()}