2016-08-12 72 views
0

我有一个名为DR的表,其中列dag_id,execution_daterun_id。我想找到一个我知道存在于表格中的特定记录。SqlAlchemy找不到记录

在我的单元测试中,我在表中创建了一个条目,然后尝试再次找到它。

tmp = session.query(DR).filter(DR.dag_id == self.dag_id).first() 

print(self.dag_id == tmp.dag_id) 
print(self.execution_date == tmp.execution_date) 
print(self.run_id == tmp.run_id) 

所有三种打印报表打印正确,但随后当执行下面的查询,没有记录发现:

session.query(DR).filter(
    DR.dag_id == self.dag_id, 
    DR.execution_date == self.execution_date, 
    DR.run_id == self.run_id 
).first() 

有谁知道为什么发生这种情况?

谢谢!

回答

1

您是否尝试过以下查询?

session.query(DR).filter(
    DR.dag_id == self.dag_id, 
    DR.run_id == self.run_id 
).first() 

如果这样的作品的问题可能是蟒蛇的datetime平等被不同评估,以你的数据库的datetime平等。

+0

不错,我试着过滤'DR.execution_date == self.execution_date'并没有记录,所以它在日期比较中必定是一些奇怪的行为。 – thenorm