如何使用contains over date / datetime字段进行查询

时间:2014-05-09 16:51:03

标签: django django-models django-queryset django-orm django-1.6

我试图使用带有日期/日期时间字段的datatables jQuery插件。当您尝试在查询集中使用__contains时,当您进行包含这些字段的查询时会生成MySQL Warning。我发现,如果您尝试对YearMonthDay进行查询,则不会显示警告。

还有另一种方法可以在日期/日期时间字段中搜索而不会发出警告,或者如何在日期/日期时间字段中查询一年/月/日。

以下是一个例子:

Model.objects.filter(Date__contains="2014")

这给出了这个警告:

Warning: Incorrect date value: '%2014%' for column 'Fecha' at row 1

我想做一个这样的查询:

SELECT * FROM Model WHERE YEAR(Date) LIKE "%4%" OR MONTH(Date) LIKE "%4%" OR DAY(Date) LIKE "%4%";

2 个答案:

答案 0 :(得分:2)

我找到的最佳解决方案是通过正则表达式进行搜索

Model.objects.filter(Date__regex="4")

答案 1 :(得分:0)

Model.objects.filter(field_name__year=2014)