我不确定如何仅使用时间字段来过滤我的数据库。现在我有一个名为 DatabasePolgygon
的类。
class DatabasePolygon(dbBase):
__tablename__ = 'objects'
begin_time = Column(DateTime) # starting time range of shape
end_time = Column(DateTime) # ending time range of shape
# Other entries not relevant to this question
begin_time和end_time的值可以等于2006-06-01 14:45:23
这样的值,它们代表了一个对象(在这种情况下是图形)覆盖的X轴范围。我想允许我的用户进行高级搜索,特别是要求所有出现在一定时间范围内的对象。然而,如何使用DateTime
字段实现这一点呢?
# Grab all shapes that appear above this certain time
query_result = query_result.filter(
DatabasePolygon.begin_time >= datetime.strptime(rng['btime']), %H:%M:%S')
)
问题在于我正在将一个datetime对象与一个
Y-m-d H-M-S
对象进行比较,而另一个对象只有H-M-S
。一个例子是如果一个用户想要所有出现在14:45:24范围之外的对象,无论年/月/日如何,那么我们会有rng['btime']=14:45:24
和 begin_time=2006-06-01 14:45:23
,但似乎没有过滤任何内容。是否有一种方式可以高效地比较这个数据列中的时间? 我很希望能够做一些像这样的事情:
# Grab all shapes that appear above this certain time
query_result = query_result.filter(
DatabasePolygon.begin_time.time() >= datetime.strptime(rng['btime']), %H:%M:%S').time()
)