Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python上的SQL命令中将Datetime作为参数发送?_Python_Postgresql_Datetime - Fatal编程技术网

如何在Python上的SQL命令中将Datetime作为参数发送?

如何在Python上的SQL命令中将Datetime作为参数发送?,python,postgresql,datetime,Python,Postgresql,Datetime,我有一个sql命令,只想选择一些具有某些条件的记录(使用python&db is Postres): 因此,我的问题是: current_date= datetime.now() tt = yield self.db.execute(self.db.execute('SELECT "Id", "RubricId", "IsRubric" FROM whis2011."CoockieUserInterests" 'WHERE "UserId" = %s AND "D

我有一个sql命令,只想选择一些具有某些条件的记录(使用python&db is 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]
问题:当我想将datetime传递给字段“Date”时,我遇到了错误:

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

此外,数据库中“日期”字段的数据类型是“无时区的时间戳”

这是我的游泳池:

    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参数,然后将它们分别传递给


如果您使用不同的包连接到Postgres,那么它可能会以不同的方式标记参数。有关详细信息,请查看文档或模块。

您很容易受到攻击。你需要阅读这个问答:我用的是“momoko”,我没有游标!当然,即使粗略阅读文档也会告诉您,
momomoko
psycopg2
的包装器,并且一个方法像
光标一样接受参数。执行
会吗?我更改了,但仍然出错,我用连接池更新了代码,也许看看代码中发生了什么有用!你也会犯同样的错误吗?您最初的错误是因为您没有将引号括起来。但是这个参数化的答案不需要引用。请告知。