gpt4 book ai didi

python - 如何在 Python 的 SQL 命令中将日期时间作为参数发送?

转载 作者:行者123 更新时间:2023-11-29 12:18:31 26 4
gpt4 key购买 nike

我有一个 sql 命令,只想在某些条件下选择一些记录(使用 python 和 db 是 Postres):所以,我的查询是:

 current_date= datetime.now()

tt = yield self.db.execute(self.db.execute('SELECT "Id", "RubricId", "IsRubric"
FROM whis2011."CoockieUserInterests"
'WHERE "UserId" = %s AND "Date" = %s '
% (Id, current_date))

result=tt.fetchall()[0]

问题:当我想将日期时间传递给字段“日期”时出现错误:

syntax error at or near "00"
LINE 1: ...rests" WHERE "UserId" = 1 AND "Date" = 2016-10-05 00:22:07.3...
^

数据库中的所有“日期”字段如下:2016-09-25 00:00:00

另外,数据库中“Date”字段的数据类型是“timestamp without time zone”。

这是我的游泳池:

    application.db = momoko.Pool(
dsn='dbname=xxxx user=xxxxx password=xxxxx host=xxxx port=5432',
size=1,
ioloop=ioloop,
)

如何在我的数据库中选择这样格式的“日期”?

最佳答案

您没有说明您使用什么模块连接到 postgresql。我们暂时假设它是 psycopg2

在这种情况下,您可以使用以下方式将参数传递给查询:

current_date = datetime.now()

self.db.execute(
'SELECT Id, RubricId, IsRubric '
'FROM whis2011.CoockieUserInterests '
'WHERE UserId = %s AND Date = %s',
(Id, current_date))

请注意,我们在此处的 sql 字符串上使用 % 插值运算符。相反,我们使用 %s 标记 sql 参数,然后将它们分别传递给 cursor.execute

如果您使用不同的包连接到 Postgres,那么它可能会以不同的方式标记参数。查看文档或模块 paramstyle了解详情。

关于python - 如何在 Python 的 SQL 命令中将日期时间作为参数发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com