在 SQLAlchemy 查询中使用 CDate()
Using CDate() in a SQLAlchemy query
我有一个包含文本格式日期的数据库,现在我需要过滤特定的日期范围。
这个查询对我有用:
SELECT CDate(field) AS df
FROM table
WHERE CDate(field)=Date();
遗憾的是我没有找到如何使用像这样的 SQLAlchemy 查询。
这对我有用:
import sqlalchemy as sa
import sqlalchemy_access as sa_a
# …
tbl = sa.Table("so71529087", sa.MetaData(), sa.Column("field", sa_a.DateTime))
tbl.drop(engine, checkfirst=True)
tbl.create(engine)
qry = sa.select(sa.func.CDate(tbl.c.field).label("df")).where(
sa.func.CDate(tbl.c.field) == sa.text("Date()")
)
print(qry)
"""
SELECT CDate(so71529087.field) AS df
FROM so71529087
WHERE CDate(so71529087.field) = Date()
"""
with engine.begin() as conn:
results = conn.execute(qry).all()
我有一个包含文本格式日期的数据库,现在我需要过滤特定的日期范围。
这个查询对我有用:
SELECT CDate(field) AS df
FROM table
WHERE CDate(field)=Date();
遗憾的是我没有找到如何使用像这样的 SQLAlchemy 查询。
这对我有用:
import sqlalchemy as sa
import sqlalchemy_access as sa_a
# …
tbl = sa.Table("so71529087", sa.MetaData(), sa.Column("field", sa_a.DateTime))
tbl.drop(engine, checkfirst=True)
tbl.create(engine)
qry = sa.select(sa.func.CDate(tbl.c.field).label("df")).where(
sa.func.CDate(tbl.c.field) == sa.text("Date()")
)
print(qry)
"""
SELECT CDate(so71529087.field) AS df
FROM so71529087
WHERE CDate(so71529087.field) = Date()
"""
with engine.begin() as conn:
results = conn.execute(qry).all()