Процедура SQL ODBC Sybase TO_DATE не предусмотрена - PullRequest
0 голосов
/ 27 августа 2018

У меня есть задача закончить на SQL, и я не очень знаком с языком. Обычный ресурс, который я бы использовал, в настоящее время болен, поэтому я прошу помощи здесь. Я запускаю следующий запрос на Sybase:

SELECT WgArt, SrtNr, Datum, WNetto 
FROM M01.Wgs 
WHERE (WgArt <> 'f') AND (SrtNr = '170904-01') AND 
      (Datum BETWEEN to_date('09.02.2017','dd.mm.yyyy') AND 
                     to_date('09.02.2017','dd.mm.yyyy')
      ) OR
      (SrtNr = '170904-02') OR
      (SrtNr = '170904-05') OR
      (SrtNr = '170904-07') OR
      (SrtNr = '150106-03')

Я получаю сообщение об ошибке: «Процедура to_date не найдена». Ошибка сообщения 42S02

Я погуглил и нашел несколько обходных статей с CAST / Convert , но также получил ту же ошибку. Любая идея будет приветствоваться.

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Предполагая, что ваш продукт - Sybase (теперь SAP) SQLAnywhere, функция to_date() отсутствует.

Вот список функций, связанных с датой, поддерживаемых SQLAnywhere .

Особый интерес могут представлять функции date(), datetime() и / или dateformat() ...?

0 голосов
/ 27 августа 2018

Я бы использовал IN предложение, а не странное OR предложение:

SELECT WgArt, SrtNr, Datum, WNetto 
FROM M01.Wgs 
WHERE (WgArt <> 'f') AND 
      (Datum BETWEEN to_date('09.02.2017','dd.mm.yyyy') AND 
                     to_date('09.02.2017','dd.mm.yyyy')
      ) AND (SrtNr IN ('170904-01', '170904-02', '170904-05', '170904-07', '150106-03')
            );
...