Я пытаюсь преобразовать ЧИСЛА типа (9012020, 12012020) в даты (20201201, 20200901),

У меня разные длины этих числовых значений, такие как то, что вы видите выше, я пробовал

select TO_DATE(TO_CHAR(col_name), 'YYYYMMDD')
from table_name 

Мне нужна твоя помощь пожалуйста спасибо

0
user14501555 22 Окт 2020 в 19:50

1 ответ

Лучший ответ

Если эти значения являются действительными значениями даты, т.е. нет ничего подобного

  • ab232020
  • 38269283

И все значения соответствуют одному формату, тогда вы можете сделать следующее:

(изменение сеанса только для того, чтобы вы знали, что из себя представляет; вам не нужно этого делать)

SQL> alter session set nls_date_format = 'dd.mm.yyyy';

Session altered.

Сам запрос:

SQL> with test (col) as
  2    (select  9012020 from dual union all
  3     select 12012020 from dual
  4    )
  5  select col,
  6         to_date(lpad(col, 8, '0'), 'mmddyyyy') result
  7  from test;

       COL RESULT
---------- ----------
   9012020 01.09.2020
  12012020 01.12.2020

SQL>
0
Littlefoot 22 Окт 2020 в 17:28