У меня есть два столбца в моей таблице: Создано (TIMESTAMP) и время жизни (BIGINT). Срок службы представлен в секундах. Я хотел бы добавить столбец времени жизни в столбец отметки времени и сравнить этот результат с другой датой.
Я сослался на руководство по дерби и обнаружил поддержку TIMESTAMPADD в «синтаксисе перехода JDBC для ключевого слова fn "раздел:
{fn functionCall} TIMESTAMPADD (интервал, целочисленное выражение, выражение отметки времени)
Хорошо, я попробовал:
SELECT i.messageId FROM ServerMessageEntity i
WHERE {fn TIMESTAMPADD(SQL_TSI_SECOND, i.lifetime, i.created)} > :now
*: теперь это параметр, который я передаю:
query.setParameter
К сожалению, я получаю следующее исключение:
Описание исключения: синтаксическая ошибка при синтаксическом анализе запроса [SELECT i.messageId FROM ServerMessageEntity i WHERE {fn TIMESTAMPADD (SQL_TSI_SECOND, i.lifetime, i.created)}>: now], неожиданный символ [{].
Похоже, что решением было бы добавить секунды к созданной метке времени и получить в результате другую метку времени. Любая помощь или синтаксис о том, как это сделать, будут оценены. Спасибо!
Дополнительная информация: Я использую Oracle TopLink 12c (12.1.2) для ORM и Derby 10.10.2.0