for(int n: someArray) {
System.out.println(n+" ");
}
Вы можете попробовать тип данных INTERVAL DAY TO SECOND, но он не сохранит вам никакого дискового пространства ... он очень подходит для этой цели.
create table t1 (time_of_day interval day (0) to second(0));
insert into t1 values (TO_DSINTERVAL('0 23:59:59'));
select date '2009-05-13'+time_of_day
from t1;
11 байтов.
Вы можете извлечь время с даты в виде строки следующим образом:
to_char(sysdate,'HH.MI.SS')
, но не существует типа времени, которое поможет вам сэкономить место.
Ваш лучший выбор, вероятно, будет хранить «секунды с полуночи» в качестве числа.
SELECT to_char( SYSDATE, 'SSSSS' ) FROM dual;
Вы сохранили бы несколько мегабайт дискового пространства (которое ничто в наше время), и вы почти ничего не достигнете в производительности.
Вы можете использовать столбец типа NUMBER
для хранения количества секунд с полуночи, как было предложено, просто не забывайте о ограничениях. (Вероятно, вы используете NUMBER(5, 0)
, который использует 1-3 байта в зависимости от сохраненного значения, вместо константы 7 байтов, используемых столбцом DATE
)
вы можете использовать:
TO_CHAR(<DATE_COLUMN>, '<TIME_FORMAT>');
пример
TO_CHAR(SYSDATE, 'HH24:MI:SS');
для формата времени вы можете проверить здесь