Как переписать специфическую функцию Oracle TO_NUMBER в ANSI SQL - PullRequest
0 голосов
/ 10 октября 2018

Существует устаревшее программное обеспечение, работающее с базой данных Oracle.Я пытаюсь обобщить это для тестов Docker, поэтому я подготовил образ PostgreSQL со схемой базы данных.Сейчас я пытаюсь запустить это приложение на базе данных Postgres, но возникает следующая ошибка:

org.postgresql.util.PSQLException: ERROR: function to_number(text) does not exist

Поэтому я изучил код и обнаружил следующую конструкцию в некоторых выборках:

to_number(to_char({0},'HH24MI')) <= to_number(to_char({1},'HH24MI'))
to_number(to_char({0},'HH24MI')) > to_number(to_char({1},'HH24MI'))

Поскольку я не специалист по базам данных, я предполагаю, что это TO_NUMBER - специфичная для Oracle функция.В этом случае он работает как фильтр для возврата записей за указанный интервал времени.

Есть ли способ, как я мог бы просто заменить эту функцию TO_NUMBER какой-либо аналогичной функцией в ANSI SQL?

1 Ответ

0 голосов
/ 10 октября 2018

Вместо Oraclism

to_number(to_char(current_timestamp, 'HH24MI'))

вы можете использовать эту стандартную конструкцию SQL:

100 * EXTRACT(HOUR   FROM current_timestamp)
    + EXTRACT(MINUTE FROM current_timestamp)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...