我有一个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...
^
所有"日期" db中的字段如下: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,
)
我如何选择"日期"在我的数据库中使用这样的格式?
答案 0 :(得分:1)
您没有说明用于连接postgresql的模块。我们假设它是distance1 = pair.pairwise_distances(df1, metric='euclidean')
的过渡时期。
在这种情况下,您可以使用以下命令将参数传递给查询:
psycopg2
请注意,我们在 上使用sql字符串上的current_date = datetime.now()
self.db.execute(
'SELECT Id, RubricId, IsRubric '
'FROM whis2011.CoockieUserInterests '
'WHERE UserId = %s AND Date = %s',
(Id, current_date))
插值运算符。相反,我们使用%
来标记sql参数,然后将它们分别传递给cursor.execute
如果您使用其他软件包连接到Postgres,则可能会以不同的方式标记参数。有关详细信息,请查看文档或模块paramstyle
。