2010-11-17 2 views
9

У меня есть таблица с полем даты. По умолчанию select max(date) from table; возвращает дату в формате «dd-mmm-yy». Как выбрать дату в формате «MM/DD/YYYY», не изменяя структуру таблицы или формат поля.Как показать дату в другом формате в oracle

Спасибо, Supraja

+1

Исправление: 'SELECT MAX (date) FROM table' does * not * возвращает дату в любом конкретном формате -' MAX (date) 'возвращает дату, а не строку; формат применяется клиентом, например. в SQL * Plus вы можете установить «NLS_DATE_FORMAT» для изменения формата отображения даты по умолчанию. –

+0

О, я не знал этого, спасибо за информацию! – trinity

ответ

15
select to_char(max(date), 'MM/DD/YYYY') from table; 
2

ЗАКАНЧИВАТЬ функция to_char и дата/время, форматирует его принимает.

select to_char(sysdate, 'MM/DD/YYYY') 
from dual; 
1

СУЩЕСТВУЕТ s таблица или представление v $ nls_parameters ищут здесь параметр 'NLS_DATE_FORMAT', это идеально подходит для того, чтобы не менять формат каждый раз.

SELECT * 
    FROM v$nls_parameters WHERE UPPER(PARAMETER) = 'NLS_DATE_FORMAT'; 

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYYMMDD'; 

Существует также возможность сделать для регистрации выигрыша. в дереве

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraClient11g_home9 

Здесь ключ NLS_DATE_FORMAT, измените дату вашего формата.

+1

Вы также можете изменить 'NLS_DATE_FORMAT' через интерфейс: Инструменты> Настройки> База данных> NLS> Формат даты – kaybee99

Смежные вопросы