2012-12-11 4 views
3

여러 열에 시간 값을 저장하려고하지만 사용할 데이터 유형이 확실하지 않습니까? 현재 TIMESTAMP가 있습니다. 그러나 이것은 날짜를 저장하는 것으로 보이며, 경주에서 기록 된 시간을 저장하려고하면 쓸모가 없습니다.Oracle SQL 시간 데이터 형식

모든 아이디어, 내가 주위를 수색하고 내가 뭘 찾고있는 찾을 수 없습니다.

읽어 주셔서 감사합니다.

+0

이 데이터를 사용하여 무엇을 정밀 당신은 더 나은 해답을 제공하는 데 도움이됩니다 필요합니다 방법에 대한 자세한 내용은. –

답변

6

경주의 경과 시간은 INTERVAL DAY TO SECOND에 저장해야합니다.

SQL> create table runner(
    2 runner_id number primary key, 
    3 runner_name varchar2(100), 
    4 runner_time interval day to second 
    5 ); 

Table created. 

SQL> insert into runner 
    2 values(1, 'Justin', numtodsinterval(250, 'second')); 

1 row created. 

SQL> select * 
    2 from runner; 

RUNNER_ID RUNNER_NAME   RUNNER_TIME 
---------- -------------------- ------------------------------ 
     1 Justin    +00 00:04:10.000000 
+1

[간격] (http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements001.htm#sthref167), ['numtodsinterval()'] (http://docs.oracle. com/cd/E11882_01/server.112/e26088/functions117.htm) 및 ['to_dsinterval()]] (http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions204.htm) 참조를 위해. –

+0

INTERVAL DAY TO SECOND를 저장할 수 있도록 테이블의 현재 열의 데이터 유형을 변경하는 방법은 무엇입니까 – Max

+2

@Max - 테이블이 비 었습니까? 그럴 경우'ALTER TABLE'을 사용하여 컬럼의 데이터 유형을 수정할 수 있습니다. 그렇지 않으면 적절한 데이터 유형으로 새 열을 추가하고, 데이터를 이동하고 (현재 행의 데이터 유형에 따라 다름) 이전 열을 삭제 한 다음 원하는 경우 새 열의 이름을 바꿔야합니다. 기둥. –

3

TIMESTAMPDATETIME 여기에 적합하지 않다. 저장하려고하는 것은 단일 지점 시간이 아니지만 간격 시간입니다. Oracle 9i 및 이후 버전에서는 이러한 간격을 지원합니다. INTERVAL DAY TO SECOND를 사용해보십시오 :

INTERVAL '3 12:30:06.7' DAY TO SECOND(1) 

참조 : http://www.techrepublic.com/article/master-oracles-time-interval-datatypes/6085801

+0

당신의 권리도! 귀하의 의견을 보내 주셔서 감사합니다. – Max