2014-01-22 6 views

ответ

2

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

select to_date(19980215, 'yyyymmdd') 
    from ... 

И затем вы можете использовать TO_CHAR для отображения его в выбранном вами формате.

select to_char(to_date(19980215, 'yyyymmdd'), 'yyyy/mm/dd') 
    from ... 
+2

я предпочел бы избежать неявного преобразования типа и сделать так: 'to_date (to_char (19980215), 'YYyyMmDd')'. –

+0

Я знаю несколько способов испортить неявное преобразование типов между varchar -> date. Но даже после некоторого размышления я не могу придумать ни одного примера, где бы это изменило ситуацию с еще одним TO_CHAR? Я предполагаю, что вы имеете в виду 'TO_CHAR (TO_DATE (TO_CHAR (), ...' – Ronnis

+0

Конечно, я имел в виду 'TO_CHAR (TO_DATE (TO_CHAR (), ...', извините за то, что я не понял этого. что такой вопрос, скорее всего, задают пользователи новичков базы данных, и им пора бы получить хорошую привычку не использовать неявные преобразования вообще. Используется для написания кода таким образом, что в будущем они избегут многих проблем. бывают случаи, когда это не имеет значения, и оба выражения работают одинаково. –

0

Попробуйте использовать функцию to_date():

select to_char(to_date(19980215,'yyyymmdd'),'yyyy/mm/dd') from dual 
Смежные вопросы