如何使用 SQLAlchemy ORM 指定 PostgreSQL DateStyle 属性

shr*_*tsa 3 python postgresql sqlalchemy

PostgreSQL 支持使用 DateStyle 属性指定日期格式,如此处所述, http://www.postgresql.org/docs/current/interactive/runtime-config-client.html#GUC-DATESTYLE。(链接最初是 8.3 版本的文档)。

我找不到任何有关如何定义此属性的 SQLAlchemy ORM 文档参考。有可能做到吗?

zzz*_*eek 5

SQLAlchemy 利用 DBAPI(通常是 psycopg2)将日期值编组到Python 日期时间对象或从中编组 - 然后您可以使用标准 Python 技术以任何您想要的方式格式化/解析。因此不需要数据库端日期格式化功能。

如果你确实想设置这个变量,你可以执行PG的SET语句:

conn = engine.connect()
conn.execute("SET DateStyle='somestring'")
# work with conn
Run Code Online (Sandbox Code Playgroud)

使其对所有连接全局化:

from sqlalchemy import event
from sqlalchemy.engine import Engine

@event.listens_for(Engine, "connect")
def connect(dbapi_connection, connection_record):
    cursor = dbapi_connection.cursor()
    cursor.execute("SET DateStyle='somestring'")
    cursor.close()
Run Code Online (Sandbox Code Playgroud)