Вы можете просто использовать to_date()
с маской подходящего формата, например, с фиксированным значением в качестве демонстрации:
select to_date(to_char(201805), 'YYYYMM') from dual;
TO_DATE(TO_CHAR(201
-------------------
2018-05-01 00:00:00
Вам не нужно явно добавлять деньчисло к значению (как показывал @HoneyBadger, или путем конкатенации после преобразования в строку), потому что в любом случае будет по умолчанию первым месяцем .
Так что вам нужно будет сделатьчто-то вроде
to_date(to_char(month), 'YYYYMM')
Часть to_char()
может быть пропущена, так как число в любом случае будет неявно преобразовано в строку, но его более полно включить.
Это нене понятно, намерены ли вы сделать это как часть запроса (возможно, в виде) или хотите изменить таблицу;если последнее, то вы можете использовать виртуальный столбец, чтобы избежать дублирования данных и необходимости поддерживать преобразованное значение в случае изменения месяца.