python3如何更新TIMESTAMPTZ?

2024-06-26 17:40:10 发布

您现在位置:Python中文网/ 问答频道 /正文

请帮助更新列类型为TIMESTAMPTZ的表。在

像这样的桌子

table(
            table_id SERIAL PRIMARY KEY,
            table_name VARCHAR(35) NOT NULL,
            last_update TIMESTAMPTZ DEFAULT Now(),
            table_link VARCHAR(70) NOT NULL,
            table_tracking BOOLEAN DEFAULT TRUE,
            url VARCHAR(225) NOT NULL            
        )

更新表代码

^{pr2}$

在错误.args控制台内

('syntax error at or near "10"\nLINE 5: last_update = 2017-07-28 10:17:55.523070')

Tags: keynameiddefault类型tableserialnot
1条回答
网友
1楼 · 发布于 2024-06-26 17:40:10

这里的问题是2017-07-28 10:17:55.523070被解释为一个算术表达式-2017 - 7 - 28 == 1982。当它到达10:17:55.523070部分时,解析器不知道该如何处理它。在

为了将其解释为TIMESTAMPZ值,需要像'2017-07-28 10:17:55.523070'一样对其进行转义。然而,由于种种原因,手工操作不是一个好主意。您的数据库连接包应该为您做到:

cur.execute("""
    UPDATE table
    SET
        last_update = %(last_update)s,
        table_tracking = %(table_tracking)s
    WHERE id = %(id)s;
    """,
    {
        "last_update": last_update,
        "table_tracking": tracking,
        "id": id,
    }
)

更多信息请参见documentation

相关问题 更多 >