【发布时间】:2015-07-02 22:09:46
【问题描述】:
query = """UPDATE table SET last_tracked = %s, being_tracked = %s WHERE(
SELECT 'X' FROM temp_table
WHERE table.selected_id = temp_table.selected_id);"""
cur.execute(query, [datetime.utcnow().isoformat(' ').split('.')[0] + ' z', True])
上面的 python/psycopg2 代码给出了以下错误:
ERROR: failed to find conversion function from unknown to boolean
STATEMENT: UPDATE table
SET last_tracked = '2015-07-02 20:32:00 z', being_tracked = true
WHERE(
SELECT 'X' FROM temp_table
WHERE table.selected_id = temp_table.selected_id);
以下代码运行良好:
query = """UPDATE table SET being_tracked = %s
WHERE NOT EXISTS(
SELECT 'X' FROM temp_table
WHERE table.selected_id = temp_table.selected_id);"""
cur.execute(query, [False])
我正在尝试仅更新表中已存在的行。我在这里做错了什么?
【问题讨论】:
-
last_tracked属性的类型是什么?
-
带时区的时间戳
标签: python sql postgresql psycopg2