Как сохранить только время; не дата и время?

@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" моими коллегами.

25
задан Ben 23 February 2013 в 21:18
поделиться

4 ответа

Вы можете попробовать тип данных 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 байт.

16
ответ дан 28 November 2019 в 21:47
поделиться

Лучше всего было бы сохранить «секунды с полуночи» в виде числового поля.

SELECT to_char( SYSDATE, 'SSSSS' ) FROM dual;
6
ответ дан 28 November 2019 в 21:47
поделиться

Вы можете извлечь время из даты в виде строки, подобной этой:

to_char(sysdate,'HH.MI.SS')

, но нет типа данных только времени, который поможет вам сэкономить место.

3
ответ дан 28 November 2019 в 21:47
поделиться

Вы бы сэкономили несколько мегабайт дискового пространства (в настоящее время это ничто), и вы почти ничего не выиграете в производительности.

Вы можете использовать столбец типа NUMBER для хранения количества секунд, прошедших с полуночи, как предлагается, только не забывайте об ограничениях.
(Вы, вероятно, использовали бы NUMBER (5, 0) , который использует 1-3 байта в зависимости от сохраненного значения, вместо постоянных 7 байтов, используемых столбцом DATE )

0
ответ дан 28 November 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: