Python 在SQLAlchemy和SQLite后端中使用日期时间限制

Python 在SQLAlchemy和SQLite后端中使用日期时间限制,python,sqlite,orm,sqlalchemy,Python,Sqlite,Orm,Sqlalchemy,我正在尝试使用SQL alchemy中的日期查询限制。示例代码如下: def young_puppies(session=get_session()): “询问所有的小狗。 返回由组织的小于6个月的产品 最小的第一个。 """ young=[] 今天=datetime.date.today() sixm=今天-相对寿命(月=-6) sel=session.query(Puppy)\ 过滤器(Puppy.dateOfBirth.between(今天上午六点)\ 订购人(描述(幼犬出生日期)) 打印

我正在尝试使用SQL alchemy中的日期查询限制。示例代码如下:

def young_puppies(session=get_session()):
“询问所有的小狗。
返回由组织的小于6个月的产品
最小的第一个。
"""
young=[]
今天=datetime.date.today()
sixm=今天-相对寿命(月=-6)
sel=session.query(Puppy)\
过滤器(Puppy.dateOfBirth.between(今天上午六点)\
订购人(描述(幼犬出生日期))
打印(sel)
res=会话。执行(sel)
对于res中的行:
young.append(dict(行))
session.close
返老还童
但是,查询生成显示出意外的行为:

选择puppy.name作为puppy\u name,puppy.id作为puppy\u id,puppy.“出生日期”作为“puppy\u出生日期”,puppy.gender作为puppy\u性别,puppy.picture作为puppy\u picture,puppy.weight作为puppy\u weight,puppy.horder\u id作为puppy\u horder\u id
来自小狗
小狗“出生日期”在哪?然后呢?小狗订购。“出生日期”描述
即使在插入过滤器之前将类型强制转换为str,也会显示相同的行为。我不知道为什么会发生这种情况,或者是否有解决办法。根据我所做的研究,这应该是可行的。这个而不是问题所在位置限制中的日期

编辑

奇怪的是,在第六个月的约会上,我做了一个sting格式的游戏,我能用这个来工作:

def young_puppies(session=get_session()):
“询问所有的小狗。
返回由组织的小于6个月的产品
最小的第一个。
"""
young=[]
tday=datetime.date.today()
六个月=一天-相对时间(月=-6)
sel=session.query(Puppy)\
过滤器(Puppy.dateOfBirth)。
介于(六个strftime(“%y-%m-%d”),tday)之间\
订购人(描述(幼犬出生日期))
打印(sel)
res=会话。执行(sel)
对于res中的行:
young.append(dict(行))
session.close
返老还童

。为什么它们会成为问题?因为数据似乎没有被替代如果我使用扁平字符串,即“2015-08-02”、“2015-02-02”,我会得到预期结果。使用日期时间变量会导致?和一个空的结果集。