Python 以字符串形式返回支持时区的postgres字段
我想使用Python 以字符串形式返回支持时区的postgres字段,python,postgresql,sqlalchemy,psycopg2,Python,Postgresql,Sqlalchemy,Psycopg2,我想使用create_engine参数来获取时区感知数据(在python中),它不是作为datetime.datetime,而是作为存储的UTC时间的字符串表示 具体而言,我有: engine = create_engine(DB_URI, convert_unicode=True, json_serializer=json.dumps) conn = engine.connect() res = fi
create_engine
参数来获取时区感知数据(在python中),它不是作为datetime.datetime
,而是作为存储的UTC时间的字符串表示
具体而言,我有:
engine = create_engine(DB_URI,
convert_unicode=True,
json_serializer=json.dumps)
conn = engine.connect()
res = find_all(conn, myquery)
但我的约会又是这样的:
datetime.datetime(2020, 4, 14, 7, 30, tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None)
我希望它看起来更像:
2020-04-14 07:30Z
我可以更改什么,以便sqlalchemy将这些值作为文本时间戳检索
我希望以下措施也能奏效:
PGTZ = psycopg2.extensions.new_type(
psycopg2.extensions.DATEARRAY.values,
'PGTZ',
lambda value, curs: value.isoformat() if value is not None else None)
psycopg2.extensions.register_type(PGTZ)
但这没有效果
我查阅了其他参考资料:
- 这没有帮助,因为它会在查询时间后转换,这不是我想要的
- 这是有希望的
- 这是关于存储,而不是关于检索
- 这很接近,但与烧瓶有关
- 这很接近,但特别是序列化了json
cast()
函数将在数据库中使用显式类型转换,而type\u-concure()
仅在检索到Python时将其视为该类型。您能帮助我了解如何/在何处使用这些吗?在查询的select()部分?这本手册有它们的例子。。。