0

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

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

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

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

目前要检查日期是否小于或等于我将通过字典

{'start_date__lte':datetime.date.today()}

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

4

3 回答 3

0

不要使用像 '2013-08-08' 这样的字符串,而是使用 python 日期对象,您可以将字符串转换为日期,例如

import datetime

{'start_date__lte': datetime.datetime.strptime('2013-08-08', '%Y-%m-%d').date()}
于 2013-08-09T06:23:45.473 回答
0

使用datetime.combinedatetimedate对象生成:

{'start_date__lte': datetime.datetime.combine(datetime.date.today(), datetime.time())}
于 2013-08-09T06:44:53.560 回答
0

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

import datetime
{'start_date__lte':datetime.datetime.now()}
于 2013-08-09T07:10:52.047 回答