@JustMike... НЕСКОЛЬКО ПРИМЕРОВ C: ... сопровождать Java.
НЕВЛОЖЕННЫЙ ЦИКЛ: ... ограничение объема, где возможный
/*LOOP_DESCRIPTION*/ {
int i;
for (i = 0; i < LOOP_LENGTH; i++) {
// loop body
}
}
ВЛОЖЕННЫЙ ЦИКЛ: ... так же
/*LOOP_DESCRIPTION*/ {
int row, column;
for (row = 0; row < ROWS; row++) {
for (column = 0; column < COLUMNS; column++) {
// loop body
}
}
}
Одна хорошая вещь об этом расположении, это читает плохо без комментариев, таким образом, поощряя их.
Это является подробным, возможно, но лично это - то, как я делаю циклы в C.
Также: я действительно использовал "индекс" и "idx", когда я запустил, но это обычно изменялось на "i" моими коллегами.
Вы можете попробовать тип данных 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 байт.
Лучше всего было бы сохранить «секунды с полуночи» в виде числового поля.
SELECT to_char( SYSDATE, 'SSSSS' ) FROM dual;
Вы можете извлечь время из даты в виде строки, подобной этой:
to_char(sysdate,'HH.MI.SS')
, но нет типа данных только времени, который поможет вам сэкономить место.
Вы бы сэкономили несколько мегабайт дискового пространства (в настоящее время это ничто), и вы почти ничего не выиграете в производительности.
Вы можете использовать столбец типа NUMBER
для хранения количества секунд, прошедших с полуночи, как предлагается, только не забывайте об ограничениях.
(Вы, вероятно, использовали бы NUMBER (5, 0)
, который использует 1-3 байта в зависимости от сохраненного значения, вместо постоянных 7 байтов, используемых столбцом DATE
)