无论DateTime字段中的时间如何,如何列出具有特定日期的所有对象

时间:2010-06-11 15:06:39

标签: python django datetime orm date

我有这样的模型

foo=models.char
bar=models.dateime

有几个泡沫在一天之内到达不同的时间。我需要列出特定日期的所有foos,无论它们到达的时间。 我无法更改模型,因此将栏分为两个字段(一个用于日期,一个用于时间)现在无法实现:(

2 个答案:

答案 0 :(得分:2)

我个人使用range过滤器和内部datetime时间戳来表示最大/分钟。例如:

date = datetime.date.today()
YourModel.objects.filter(bar__range=(
                                datetime.datetime.combine(
                                        date,
                                        datetime.time.min
                                    ),
                                datetime.datetime.combine(
                                        date,
                                        datetime.time.max
                                    ),
                            ))

答案 1 :(得分:0)

假设日期时间格式如下:YYYYMMDD HHmmss 例如:20100611 171000将是1020年6月11日,下午5:10

假设具有以下日期的模型列表: 20100609 120000 20100611 161204 20100611 121204 20100611 191204

你想要20100611的所有型号,用伪代码你可以做到:

for (model in models) 
  if (model.datetime >='20100611 000000' or model.datetime<='20100611 235959')
    filtered_foos.add(model.foo)

这将有效地忽略日期的时间部分(抱歉,我没有python解释器,语法明显关闭,但你应该明白了)