Проблема с функцией Oracle Date Time - PullRequest
0 голосов
/ 23 октября 2019

Когда я выполняю следующий запрос, он возвращает правильное значение:

 select to_date('24-OCT-19' || ' ' || '0900' ,'dd-Mon-rr hh24mi')   from dual;

Результат >> 24.10.2009 9:00:00 AM

Но когда я использую в предложение и сохраняюрезультат в некоторой переменной показывает только дату (время урезано):

select to_date('24-OCT-19' || ' ' || '0900' ,'dd-Mon-rr hh24mi') into Res from dual;

Результат: Res = 24-OCT-19

Ответы [ 2 ]

1 голос
/ 23 октября 2019

Это правильное поведение.

Вам необходимо ввести параметр NLS_DATE_FORMAT в желаемый формат. (На уровне сеанса или базы данных)

Чтобы увидеть текущее значение вышеупомянутого параметра в сеансе, вы можете использовать NLS_SESSION_PARAMETERS view.

Чтобы установить его на уровне сеанса, вы можете использовать следующую командув вашем сеансе:

ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS';

SELECT YOUR_DATE FROM YOUR_TABLE;

также при отображении даты вы можете установить ее в функции to_char, если не разрешено устанавливать ее на уровне сеанса.

Select to_char(your_date, 'DD-MON-RRRR HH24:MI:SS') from your_table;

Cheers !!

0 голосов
/ 23 октября 2019

Попробуйте это:

declare 
v_res timestamp;
Begin 
   select to_date('24-OCT-19' || ' ' || '0900' ,'dd-Mon-rr hh24mi', 'NLS_DATE_LANGUAGE = American' ) into v_res
   from dual;
dbms_output.put_line(v_res);
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...