Почему при получении ошибки отсутствует правильная скобка - PullRequest
0 голосов
/ 18 октября 2018

Это мой SQL-запрос.Я получил ошибку, не указав правильную скобку, но думаю, что есть проблема с интервалом.

select max(valdate) 
  from CORE_TOTEM.TOTEM_MONTHEND_COVERAGE
 where valdate<=sysdate 
   and valdate>= DATE_ADD(sysdate, INTERVAL 5 DAY);

Ответы [ 2 ]

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

В Oracle нет функции DATE_ADD.для добавления или подсчета дней с даты просто используйте (±) как sysdate-5 или sysdate + 5.

select max(valdate) 
  from CORE_TOTEM.TOTEM_MONTHEND_COVERAGE
 where valdate<=sysdate 
   and valdate>= sysdate-5
0 голосов
/ 18 октября 2018

Я думаю, что вы запутались с Oracle DB, поскольку в MySQL нет псевдостолбца sysdate, но current_date можно использовать вместо:

select max(valdate) 
  from CORE_TOTEM.TOTEM_MONTHEND_COVERAGE
 where valdate<=current_date 
   and valdate>= DATE_ADD(current_date, INTERVAL 5 DAY);

Редактировать: Из-за вашей последней пометки вам следует рассмотреть возможность использования следующей

(, поскольку в Oracle нет функции с именем DATE_ADD, тогда как MySQL DB имеет ):

select max(valdate) 
  from CORE_TOTEM.TOTEM_MONTHEND_COVERAGE
 where valdate<= trunc(sysdate) 
   and valdate>= trunc(sysdate)-5;

или

select max(valdate) 
  from CORE_TOTEM.TOTEM_MONTHEND_COVERAGE
 where valdate between trunc(sysdate) and trunc(sysdate)-5;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...