@ivandao

Как преобразовать дату в timestamp?

В таблице строковое поле со значениями вида: September 11, 2019, 5:02:44 PM
Как просто и красиво преобразовать это в timestamp?

В чем ошибка (September -> Сентябрь)
SELECT TO_DATE('September 11, 2019, 5:02:44 PM', 'MONTH DD, YYYY, HH:MI:SS AM') FROM dual;
  • Вопрос задан
  • 1344 просмотра
Решения вопроса 1
idShura
@idShura
У тебя язык даты по умолчанию NLS_DATE_LANGUAGE не соответствует указанному в запросе, поэтому возникает ошибка. Язык можно явно указывать в запросе, например:
SELECT TO_DATE('September  11, 2019, 5:02:44 PM', 'MONTH DD, YYYY, HH:MI:SS AM', 'NLS_DATE_LANGUAGE=AMERICAN') FROM DUAL;


или изменить на уровне сессии:
alter session set NLS_LANGUAGE=AMERICAN

Посмотреть значение параметра языка можно следующим запросом
select * from nls_session_parameters where parameter = 'NLS_DATE_LANGUAGE';


Преобразовать в timestamp можно вот так:
SELECT cast (TO_DATE('September  11, 2019, 5:02:44 PM', 'MONTH DD, YYYY, HH:MI:SS AM','NLS_DATE_LANGUAGE=AMERICAN') AS TIMESTAMP) FROM DUAL;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы