У меня есть Java-код для trigger
SQL-запроса, мне нужно сравнить с временем ввода и временем ввода плюс один час, не уверен, что здесь не так, потому что он работает на моем клиенте SQL.
Я получил эту ошибку:
Исключение в потоке "main" org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback;неверная грамматика SQL [выберите количество (*) из транзакции, где отметка времени>?И отметка времени <(? + ИНТЕРВАЛ '1 ЧАС' - ИНТЕРВАЛ '120')];вложенное исключение: org.postgresql.util.PSQLException: ОШИБКА: оператор не существует: временная метка с часовым поясом <интервал </p>
код Java:
static final String SQL_QUERY_TO_FETCH_TRANSACTION_COUNT = "select count(*) from %s where timestamp > :timestamp AND " +
"timestamp < (:timestamp + INTERVAL '1 HOUR' - INTERVAL '%s')";
public Transactions getTransactionsAfterTime(Timestamp lastReadTimestamp, int maxRecords) throws SQLException {
DatabaseRecordMapper transactionRecordMapper = DatabaseRecordMapper.builder().tableName(TRANSACTION).build();
SqlParameterSource namedParameters = new MapSqlParameterSource("timestamp", lastReadTimestamp);
final String sqlToFetchTransactionCount =
String.format(SQL_QUERY_TO_FETCH_TRANSACTION_COUNT, TRANSACTION,
Integer.toString(TRANSACTION_TIMEOUT_IN_SECONDS));