问题是很久以前提出的,但对于寻找在pyral中使用日期查询的人可能很有用。
问题中的代码有几个问题:
datetime.datetime.now()
可能不会以 Rally 所需的格式返回日期,因此最好使用它strftime
来获取正确的格式
多个条件需要有正确的括号集;例如:((((condition1) AND (condition2)) AND (condition3)) AND (condition4))
LastUpdateDate
必须早于当前日期(除非用户能够跳转到未来)。
最好用双引号 ( "
) 代替单引号 ( '
)放置日期
这是我用来识别过去 5 天内未更新且未完成的任务的代码。
iter_name = "2018-Iteration-4"
five_days_ago = datetime.datetime.now() - datetime.timedelta(days=5)
str_date = five_days_ago.strftime("%Y-%m-%dT%H:%M:%S.%fZ")
tasks_not_updated = rally.get(
'Task',
query = '(((iteration.Name = "%s")'
' and (State != Completed))'
' and (LastUpdateDate < "%s"))' % (iter_name, str_date)
)
for task in tasks_not_updated:
print("%s (%s)" % (task.Name, task.State))