提取日期时间,然后与先前的日期时间进行比较

时间:2020-05-28 05:56:00

标签: datetime groovy

我要确保存储在数据库表中的日期时间不超过以前捕获的日期时间2分钟。

从数据库表返回的结果是这种格式。

[[col1:2020-05-28 04:02:21.34]]

我的代码

import java.text.SimpleDateFormat
//capture current date time
def date = new Date()
println date.format('yyyy-MM-dd hh:mm:ss.SS',TimeZone.getTimeZone('UTC'))

//wait 2 minutes then capture DB table date time
WebUI.delay(120)
PostgresdbQuery = /SELECT col1 FROM table1.test/
List resultsafter = CustomKeywords.'test.database.getPostgresSQLResults'(GlobalVariable.testPostgresdbConnString , GlobalVariable.testPostgresdbUsername , GlobalVariable.testPostgresdbPassword ,GlobalVariable.testPostgresdbDriver ,PostgresdbQuery )
println(resultsafter)

//assert 
assert resultsafter < date, 'Execute time is within 2 minutes'

错误

Reason:
groovy.lang.GroovyRuntimeException: Cannot compare java.util.ArrayList with value '[{col1=2020-05-28 04:02:21.34}]' and java.util.Date with value '5/28/20 1:49 PM'

1 个答案:

答案 0 :(得分:0)

结果是地图列表。要使该检查有效,您必须将其编写为:

assert resultsAfter.first().col1 < date

这仅在出现第一个结果时才起作用。假设要断言,对于所有元素,可以使用every或循环结果并对每行进行断言。

但是,在这一点上,我只允许DB执行工作:选择不符合条件的所有项目,并确保没有找到结果。