Причина выражения SQL ORA 00936 Ошибка отсутствующего выражения - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь добавить именованное поле вычисления в проект ssas, следующее выражение работает с источником данных сервера sql, а не с оракулом:

convert(datetime,convert(date,DATE_HR_INSC),110)

Спасибо!

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Полагаю, вы хотите преобразовать значение даты в строку, используя формат 110, что означает мм-дд-гггг (12-30-2019).

Способ сделать это в Oracle можно следующим образом:

to_char(date,'mm-dd-yyyy')
1 голос
/ 06 марта 2019

Первым внутренним шагом этого кода SQL Server является приведение DATE_HR_INSC к дате.Затем он преобразуется в дату и время с маской формата 110.Я не уверен, что это имеет смысл, и вместо этого я ожидал бы увидеть следующее:

CONVERT(varchar, CONVERT(date, DATE_HR_INSC), 110)

Это сгенерировало бы дату и время в формате mm-dd-yyyy.Мы можем попытаться приблизить это в Oracle, используя функции TO_DATE и TO_CHAR.Примерно так:

TO_CHAR(TO_DATE(DATE_HR_INSC, 'yyyy-mm-dd'), 'mm-dd-yyyy')

Демо

Предполагается, что DATE_HR_INSC имеет формат yyyy-mm-dd.Если он имеет другой формат, замените маску, использованную при вызове, на TO_DATE выше.

...