Оракул конвертировать ДД-МОН-ГГ в ДД / ММ / ГГГГ

Я пытаюсь преобразовать формат столбца varchar2 из "DD-MON-YY" в "DD / MM / YYYY".

Например: с01 января по 16января 2016 года

Если вы можете спросить или это может помочь:

  • Часть "MON" на английском языке, но мои текущие настройки NLS на турецком языке.
  • Все годы после 2000 года.

Как я могу это сделать? Заранее спасибо..

2 ответа

Решение

Если вы не предоставите NLS_DATE_LANGUAGE Параметр, будет использоваться ваш собственный параметр сеанса.

Вы можете переопределить это так:

select TO_CHAR(TO_DATE('01-JAN-16','DD-MON-YY', 'NLS_DATE_LANGUAGE = English'),
           'DD/MM/YYYY') from dual;

Это повлияет только на этот запрос, ничего больше. Если вам нужно поработать со многими подобными датами,

ALTER SESSION SET NLS_DATE_LANGUAGE='ENGLISH'

- затем вы можете изменить его позже или сбросить на турецкий, когда закончится этот сеанс, и вы начнете другой сеанс.

Если вам нужно, чтобы это изменение было (почти) постоянным, внесите его в свои настройки в SQL Developer или Toad или в login.sql для SQL*Plus.

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

TO_CHAR(TO_DATE('01-JAN-16','DD-MON-YY'),'DD/MM/YYYY')

Ваши данные должны быть чистыми - все должно соответствовать исходному формату, иначе вы столкнетесь с ошибками при преобразовании TO_DATE.

Перейдите в Инструменты -> Настройки -> База данных —-> NLS -> Формат даты и измените дату на ДД / ММ / ГГГГ.

Oracle SQL Developer Версия 18.4.0.376 Build 376.1900

Другие вопросы по тегам