SQLAlchemy在日期之间进行限制

时间:2017-11-10 18:54:46

标签: python sqlalchemy

我有以下查询:

query_news = sa.select([relaciones_laborales.c.PersonalPerId])
               .where(relaciones_laborales.c.RelLabFch.between(sa.bindparam('p1d'),sa.bindparam('p2d')))

如果我更正,则不包括BETWEEN中的界限,例如范围表示法(p1d,p2d),而不是[p1d,p2d]。

假设我想写一个表示范围[p1d,p2d]的条件,其RelLabFch属性大于或等于p1d且小于p2d,我需要明确地写出这样的条件:< / p>

query_news = sa.select([relaciones_laborales.c.PersonalPerId])
               .where(relaciones_laborales.c.RelLabFch.between(sa.bindparam('p1d'), sa.bindparam('p2d')) | relaciones_laborales.c.RelLabFch == sa.bindparam('p1d'))

是否有更简单的方法来编写代表[p1d, p2d)的上述代码,与>= p1d AND < p2d相同?

1 个答案:

答案 0 :(得分:1)

使用SQL BETWEEN运算符将以包含的方式计算范围。

BETWEEN 10 AND 20与[10,20]相同。

要编写代表[10,20]的简单查询,您可以按照Ilja Everilä的建议执行以下操作。

query_news = sa.select([relaciones_laborales.c.PersonalPerId])
               .where(relaciones_laborales.c.RelLabFch >= sa.bindparam('p1d') & \
                      relaciones_laborales.c.RelLabFch < sa.bindparam('p2d'))