首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果我比较日期时间,Django的str(queryset.query)返回无效的SQL

如果我比较日期时间,Django的str(queryset.query)返回无效的SQL
EN

Stack Overflow用户
提问于 2019-08-20 23:42:33
回答 3查看 243关注 0票数 1

我有一个用queryset.filter(date__gte=datetime(2011,1,1))准备的Django查询集

如果我随后调用str(queryset.query),我会在字符串中看到以下内容:

代码语言:javascript
运行
复制
... WHERE "App_table"."date" >= 2011-1-1

但是,这是无效的SQL代码,因为如果我在Postgresql中运行此代码,则会收到以下错误:

代码语言:javascript
运行
复制
... WHERE "App_table"."date" >= 2011-1-1
ERROR:  operator does not exist: date >= integer
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

为什么会发生这种情况,我如何让Django输出正确的SQL代码以便我可以处理?

EN

Stack Overflow用户

回答已采纳

发布于 2019-08-21 00:10:11

您可以使用query. sql_with_params()方法。

代码语言:javascript
运行
复制
print(q.query. sql_with_params())

这将打印查询的参数化版本。

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57577226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档