[SQL] 어떻게에만 시간을 저장합니다; 하지 날짜와 시간?
SQL어떻게에만 시간을 저장합니다; 하지 날짜와 시간?
하나 개의 필드에서 나는이 아닌 날짜 쌍, 즉 표준 오라클 날짜를 저장해야합니다.
01/10/2009 22:10:39
그러나 시간이 만
22:10:39
나는 디스크 공간 저장 (I 2 만 개 행이) 나 더 빠른 처리를 제공하고 있다고 생각합니다.
해결법
-
==============================
1.그것은하지만 이러한 목적에 매우 적합합니다 ... 당신은 INTERVAL DAY TO SECOND 데이터 형식을 시도 할 수 있지만, 그것은 당신에게 어떤 디스크 공간을 절약하지 않습니다.
그것은하지만 이러한 목적에 매우 적합합니다 ... 당신은 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 바이트하지만.
-
==============================
2.가장 좋은 방법은 아마도 숫자 필드로 "자정 이후의 초"를 저장하는 것입니다.
가장 좋은 방법은 아마도 숫자 필드로 "자정 이후의 초"를 저장하는 것입니다.
SELECT to_char( SYSDATE, 'SSSSS' ) FROM dual;
-
==============================
3.이 같은 문자열로 날짜에서 시간을 추출 할 수 있습니다 :
이 같은 문자열로 날짜에서 시간을 추출 할 수 있습니다 :
to_char(sysdate,'HH.MI.SS')
하지만 공간 저장 도움이 될 것입니다 시간 전용 데이터 타입이 없다.
-
==============================
4.당신은 (현재 아무것도 아니다) 디스크 공간의 몇 메가를 절약 할 수 있으며 성능이 아무것도 옆에 얻을 것이다.
당신은 (현재 아무것도 아니다) 디스크 공간의 몇 메가를 절약 할 수 있으며 성능이 아무것도 옆에 얻을 것이다.
당신은 제안 자정 이후의 초 수를 저장하기위한 번호 형식의 열을 사용할 수 있습니다 단지 제약에 대해 잊지 마세요. (아마도 상수 대신에, 상기 저장된 값에 따라 1 내지 3 바이트를 사용한다)를 DATE 컬럼으로 사용 7 바이트 번호 (5, 0을 사용하는 것)
-
==============================
5.당신이 사용할 수있는:
당신이 사용할 수있는:
TO_CHAR(<DATE_COLUMN>, '<TIME_FORMAT>');
예
TO_CHAR(SYSDATE, 'HH24:MI:SS');
시간 형식에 대한 당신은 여기에서 확인하실 수 있습니다
from https://stackoverflow.com/questions/1786418/how-to-store-only-time-not-date-and-time by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 자바 날짜 - 데이터베이스에 삽입 (0) | 2020.03.29 |
---|---|
[SQL] 구문 분석 쉼표로 구분 된 문자열은 Where 절에서 문자열의 IN 목록을 만들려면 (0) | 2020.03.29 |
[SQL] 외래 키 참조가 아닌 고유 인덱스 할 수 있습니까? (0) | 2020.03.29 |
[SQL] 각 ID에 대한 잡아 최대 값에 대한 간단한 쿼리 (0) | 2020.03.29 |
[SQL] 준비된 문을 통해 INSERT INTO와 PDO [폐쇄] (0) | 2020.03.29 |