Только час в базе данных Sql (Sql Oracle) [дубликат]

for(int n: someArray) {
    System.out.println(n+" ");
}
20
задан Ben 23 February 2013 в 23:18
поделиться

5 ответов

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

13
ответ дан David Aldridge 5 September 2018 в 07:16
поделиться

Вы можете извлечь время с даты в виде строки следующим образом:

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

, но не существует типа времени, которое поможет вам сэкономить место.

2
ответ дан Jeffrey Kemp 5 September 2018 в 07:16
поделиться

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

SELECT to_char( SYSDATE, 'SSSSS' ) FROM dual;
6
ответ дан kurosch 5 September 2018 в 07:16
поделиться

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

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

0
ответ дан Marius Burz 5 September 2018 в 07:16
поделиться

вы можете использовать:

TO_CHAR(<DATE_COLUMN>, '<TIME_FORMAT>');

пример

TO_CHAR(SYSDATE, 'HH24:MI:SS');

для формата времени вы можете проверить здесь

0
ответ дан viduka 5 September 2018 в 07:16
поделиться
Другие вопросы по тегам:

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