【问题标题】:How can I make a query with contains over date/datetime fields如何使用包含日期/日期时间字段的查询
【发布时间】:2014-06-27 12:20:07
【问题描述】:

我正在尝试使用带有日期/日期时间字段的数据表 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%";

【问题讨论】:

  • @MikeVelazco 你找到解决方案了吗?
  • @VinicioAjuchan 是的,我的回答
  • @MikeVelazco 很酷,我试过了,但对我来说它并没有给出确切的结果,我的意思是有时它有奇怪的行为,谢谢!

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


【解决方案1】:
Model.objects.filter(field_name__year=2014)

【讨论】:

  • 如果你想在日期的任何位置搜索一个数字,因为它是一个字符串,这不起作用。这仅过滤给定的一年。
【解决方案2】:

我发现的最佳解决方案是通过正则表达式搜索

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

【讨论】:

    猜你喜欢
    • 2019-08-18
    • 2018-05-31
    • 2021-01-23
    • 2016-07-09
    • 1970-01-01
    • 2018-12-16
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多