PostgreSQL创建TIMESTAMP WITH TIMEZONE列时出现语法错误
PostgreSQL创建表时TIMESTAMP语法错误的解决办法
你的问题出在TIMESTAMP WITH TIMEZONE的语法上——PostgreSQL要求这个类型的正确写法是TIMESTAMP WITH TIME ZONE(TIME和ZONE之间必须有空格),或者用更简洁的别名TIMESTAMPTZ。你执行的uuid-ossp扩展和这个问题完全无关,那个是用来生成UUID的,不影响时间类型的语法校验。
修正后的DDL代码可以二选一:
写法一:使用完整规范类型名
query = """CREATE TABLE data ( fire_date_utc TIMESTAMP, date_local TIMESTAMP WITH TIME ZONE, date_precision TEXT );""" with db.connect() as conn: with conn.cursor() as db_cursor: db_cursor.execute(query) conn.commit() # 记得提交事务,避免操作未生效
写法二:使用简写类型名
query = """CREATE TABLE data ( fire_date_utc TIMESTAMP, date_local TIMESTAMPTZ, date_precision TEXT );""" with db.connect() as conn: with conn.cursor() as db_cursor: db_cursor.execute(query) conn.commit()
内容的提问来源于stack exchange,提问作者scott_m
相关产品推荐
相关产品推荐

