Я впервые попытался создать такую функцию:
create or replace function func_getcreatedtime(p_createdtime varchar2)
return varchar2 as
formatted_time varchar2(1000) := '';
begin
select case formatted_time
when TO_CHAR(sysdate, 'YYYY') = TO_CHAR(p_createdtime, 'YYYY')
then TO_CHAR(p_createdtime, 'Mon DD') || ' at ' || TO_CHAR(p_createdtime, 'HH24:MI') createdtime
else TO_CHAR(p_createdtime, 'Mon DD, YYYY') || ' at ' || TO_CHAR(p_createdtime, 'HH24:MI') createdtime,
end
from dual;
return formatted_time;
end;
и попытался вызвать эту функцию следующим образом:
select t.comments, t.createdtime, func_getcreatedtime(t.createdtime) from postcomment t;
, но она показывает эту ошибку:
ORA-06575: Пакет или функция FUNC_GETCREATEDTIME находится в недопустимом состоянии
t.createdtime
находится в формате 30-APR-20 06.59.59.546000 PM
, я хочу отформатировать это datetime.
Если sysdate и t.createdtime имеют один и тот же год, я хочу отформатировать его до Apr 30 at 06:59
Если sysdate и t.createdtime имеют другой год, я хочу отформатировать его до Apr 30, 2020 at 06:59