Задать вопрос
@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;
  • Вопрос задан
  • 1485 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    DB-021 Язык Oracle PL/SQL для разработчиков
    1 неделя
    Далее
  • Stepik
    SQL для начинающих: с нуля до сертификата Oracle
    2 недели
    Далее
  • OTUS
    SQL для разработчиков и аналитиков
    3 месяца
    Далее
Решения вопроса 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;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Principal Recruitment Москва
от 200 000 до 250 000 ₽
Principal Recruitment Москва
от 200 000 до 350 000 ₽
Principal Recruitment Москва
от 200 000 до 350 000 ₽