使用 django orm 实现我的过滤器

Posted

技术标签:

【中文标题】使用 django orm 实现我的过滤器【英文标题】:using django orm to realize my filter 【发布时间】:2011-07-16 07:34:51 【问题描述】:

我的原始sql语句如下:

select* from t 
where dateadd(ss,closedate-datediff(ss,getdate(),getutcdate()),'1970-1-1')
      between convert (datetime,'2011-7-1 00:00:00') and convert(datetime,'2011-7-31 23:59:59')

已关闭是我在表 t 中的列之一,它的意思是:从 1970-1-1 开始的秒数。

我如何使用 Django ORM 实现这个查询?这里涉及到 dateadd、datediff(sql server 2005) API,

我不知道如何处理这个问题。

【问题讨论】:

能发一下django模型和数据库表的schema吗? 【参考方案1】:

您是否尝试进行日期范围查询?比如,获取两个日期之间的所有记录? 如果是,那么类似以下内容将为您提供过去 30 天的记录

today = date.today() + timedelta(days=1)
n_days_ago = today + timedelta(days=-30)
trans = Transactions.objects.filter(payment_received_date__range=[n_days_ago ,today])

【讨论】:

以上是关于使用 django orm 实现我的过滤器的主要内容,如果未能解决你的问题,请参考以下文章

使用 Django ORM 中的列过滤器获取主键 ID

如何在 Django ORM 过滤器中使用 OR 条件? [复制]

Django ORM 按过滤器排序

Django ORM:按相关表过滤器的聚合排序

Django ORM:按对象列表过滤

Django ORM 使用过滤器进行注释