如何过滤日期

Posted

技术标签:

【中文标题】如何过滤日期【英文标题】:How can I do to filter on the dates 【发布时间】:2019-11-21 05:20:48 【问题描述】:

我正在使用 django 进行编程,我有这个变量:

a = '2019-08-03'

我有一个包含两列的数据库,开始和结束是这样的:

start = 2019-08-01 00:00:00.000000
end = 2019-08-15 00:00:00.000000

显然 start 和 end 有很多值。我想得到 a 在开始和结束之间的行。我该怎么办?

我想过这样的事情:

c = myObject.objects.filter(mycondition)

但我想我必须正确地进行转换,然后在...之间进行类似的操作...您能帮帮我吗?

我可以修改这样的a = 2019-08-03 00:00:00.000000

【问题讨论】:

How to create a Django queryset filter comparing two date fields in the same model 的可能重复项。和documentation on query expressions。我建议您仔细阅读它,因为它几乎可以回答您在过滤方面可能遇到的所有问题 【参考方案1】:

您可以过滤这些,以使条件start ≤ a ≤ end 成立:

Model.objects.filter(<b>start__lte=a, end__gte=a</b>)

如果您想增强拟合效果,在您的 startend 字段中添加 db_index 可能会有所帮助。

【讨论】:

以上是关于如何过滤日期的主要内容,如果未能解决你的问题,请参考以下文章

SQLAlchemy:如何过滤日期字段?

如何在 iOS swift 中使用文本字段过滤日期数组?

R:如何过滤/子集日期序列

如何按当前日期之后的日期过滤?

如何过滤日期值?

如何使用 django F 表达式仅过滤日期时间字段的日期