Проблемы с синтаксической ошибкой Oracle SQL для DATE_SUB - PullRequest
0 голосов
/ 26 октября 2019

Я получаю сообщение об ошибке "отсутствует правильная скобка" в приведенном ниже запросе. У меня нет пропущенных скобок ....

Я попытался просмотреть документацию Oracle OQL и не вижу, где возникла проблема.

Запрос

select *
  from DB.DB
 where OUTAGE_OPENED > DATE_SUB(NOW(), INTERVAL 60 MINUTE)

Полная ошибка:

ORA-00907 : отсутствует правая скобка 00907. 00000 - "отсутствует правая скобка" * Причина:
* Действие: Ошибка в строке: 25 Колонка: 48

В колонке 48 у меня есть 60.

Я пробовал SUBDATE (документация говорит, что они совпадают при использовании аргументов, которые я использую),Это работает в MySQL, и похоже, что это должно работать в Oracle, но, очевидно, я делаю что-то не так.

Ответы [ 2 ]

1 голос
/ 26 октября 2019

DATE_SUB доступно в MySQL, но не в Oracle. Хотя обе эти базы данных являются продуктами Oracle Corporation (в настоящее время), они являются результатом совершенно разных линий разработки (вы могли бы сравнить историю обоих продуктов) и, таким образом, имеют существенные различия, такие как обработка дат и времени.

1 голос
/ 26 октября 2019

date_sub() не является функцией Oracle. Просто используйте интервалы:

SELECT * 
FROM DB.DB
WHERE OUTAGE_OPENED > sysdate - INTERVAL '60' MINUTE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...