1

我需要找到未更新的任务。

标准如下:

'iteration.Name = \"iterationName\" and State!=Completed and LastUpdateDate<'+str(datetime.datetime.now())+"'"

这将导致:

iteration.Name = "iterationName" and State!=Completed and LastUpdateDate<'2015-12-27 20:17:08.769000'

我没有得到任何结果。

集会任务对象具有LastUpdateDateas2015-12-16T09:54:30.600Z 8.0

如何比较LastUpdateDate查询条件中的?

4

2 回答 2

1

最后我对多个参数有同样的问题,我不得不添加括号才能让它工作。

(('iteration.Name = \"iterationName\") AND (State!=Completed)) AND (LastUpdateDate<'+str(datetime.datetime.now())+"'")

那里的括号可能太多了,我认为关键是在前两个条件周围得到一个括号;如果添加另一个条件,它看起来像这样

((((condition1) AND (condition2)) AND (condition3)) AND (condition4))
于 2016-02-01T16:33:44.393 回答
0

问题是很久以前提出的,但对于寻找在pyral中使用日期查询的人可能很有用。

问题中的代码有几个问题:

  1. datetime.datetime.now()可能不会以 Rally 所需的格式返回日期,因此最好使用它strftime来获取正确的格式

  2. 多个条件需要有正确的括号集;例如:((((condition1) AND (condition2)) AND (condition3)) AND (condition4))

  3. LastUpdateDate必须早于当前日期(除非用户能够跳转到未来)。

  4. 最好用双引号 ( ") 代替单引号 ( ')放置日期

这是我用来识别过去 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))
于 2018-03-15T03:57:16.113 回答