programing

날짜와 시간이 아닌 시간만 저장하는 방법은 무엇입니까?

mailnote 2023. 6. 10. 09:37
반응형

날짜와 시간이 아닌 시간만 저장하는 방법은 무엇입니까?

한 필드에는 표준 Oracle 날짜와 같은 날짜/시간 쌍이 저장되지 않아야 합니다.

01/10/2009 22:10:39

하지만 시간만

22:10:39

Disk 공간을 절약하거나(2백만 줄의 행이 있음) 더 빠른 처리를 제공할 수 있습니다.

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')

그러나 공간을 절약하는 데 도움이 되는 시간 한정 데이터 유형은 없습니다.

사용할 수 있는 항목:

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

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

시간 형식은 여기에서 확인할 수 있습니다.

디스크 공간을 몇 MB(현재는 아무것도 아님) 절약할 수 있지만 성능은 거의 향상되지 않습니다.

의 열을 사용할 수 있습니다.NUMBER제안된 대로 자정 이후의 시간(초)을 저장하는 유형입니다. 제약 조건을 잊지 마십시오.
(아마도 사용할 것입니다.NUMBER(5, 0)즉, 저장된 값에 따라 1-3바이트를 사용합니다.DATE열)

언급URL : https://stackoverflow.com/questions/1786418/how-to-store-only-time-not-date-and-time

반응형