извлечь дату и время, а затем сравнить с предыдущей датой и временем - PullRequest
0 голосов
/ 28 мая 2020

Я хочу убедиться, что дата и время, хранящееся в таблице базы данных, не более чем на 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 голосов
/ 28 мая 2020

Результат - список карт. Чтобы эта проверка работала, вам нужно будет написать ее как:

assert resultsAfter.first().col1 < date

Это будет работать только для самого первого результата и только если он есть. Предполагая, что вы хотите утверждать, что для всех элементов вы можете использовать результаты every или l oop и делать утверждения для каждой строки.

Тем не менее, на этом этапе я бы просто позволил БД выполните работу: выберите все элементы, которые не соответствуют критериям, и убедитесь, что результатов не найдено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...