Как нужно указать тип столбца, чтобы при вставке создавалось время в заданном формате?

Как нужно указать тип столбца в таблице, чтобы при вставке создавалось время такого формата -- 17:50:09.0?

Таблица – Edit – Columns – Type (Что тут нужно выбрать?)

Или для значенния по умолчанию - Default, что нужно указать, чтобы был только формат времени - 17:50:09.0?.


Ответы (1 шт):

Автор решения: 0xdb

Формат хранения даты и времени изменить невозможно (см. ниже).

Если нужен символьный формат колонки содержащий только время, то создайте колонку для хранения даты/времени DATE и дополнительно к ней виртуальную колонку.

Например (на db<>fiddle):

create table t (
    id int, dt date default sysdate, 
    time char(10) as (to_char (dt, 'hh24:mi:ss".0"')))
/
insert into t (id) values(1);

Формат значений, полученных из виртуальной колонки известен заранее и не зависит от каких-либо настроек:

select id, time from t;

        ID TIME      
---------- ----------
         1 11:22:33.0

Формат хранения даты и времени выглядит так:

DUMP(DT,16)
---------------------------------
Typ=12 Len=7: 78,79,6,17,17,23,22

И изменить его могут только разработчики Oracle.

Если при поиске будет найдено решение, предлагающее хранить дату или время как символьную строку, то оно заведомо неверно.

→ Ссылка