Сообщение об ошибке, скорее всего, вызвано тем, как вызывается процедура, т. Е. Входным параметром.
Когда вы вводите фактическую дату тип данных (например, возвращаемое значение из функции, подобной current_date
, результат преобразования типа , как to_date ('21/02/2018', 'DD/MM/YYYY')
или литерал даты date'2018/02/21'
) ошибок не возникает.
Итак, как вы написали в своем ответе, проблема заключается в формате текстовой даты, который вы вводите в процедуру. В таком случае SAP HANA попытается автоматически преобразовать значение в тип данных даты и завершится неудачей, если формат не является одним из документированных стандартных форматов.
Это еще один пример того, почему с неявным преобразованием типов следует быть очень осторожным.
Что касается фактической цели процедуры, то есть нахождения первой даты текущего года, есть гораздо более простой способ достичь этого.
Функция current_date
возвращает текущую дату (в часовом поясе сервера). Взятие компонента YEAR
этой даты может быть легко выполнено с помощью функции year()
.
Наконец, преобразование этого в тип данных date (daydate / seconddate) заполняет компоненты дня минимальным возможным значением: это первый день года.
select to_date(year(current_date)) NEW_YEAR_DATE from dummy