2013-02-14 3 views
0

나는 user_id 필드와 time 필드를 가지고 있습니다. time 필드는 timestamp 데이터 유형입니다. 사용자 ID에 많은 로그 시간이있을 수 있습니다. 사용자의 시간과 시간을 합한 시간을 찾고 싶습니다.타임 스탬프에서 계산 한 시간

시간과 분으로 변환 할 수 있었지만 각 ID마다 시간을 합산 할 수는 없습니다. 다음은 내가 사용한 코드입니다.

select user_id, to_char (time_loged)as "Totalhours " 
from logtable 
+0

어떤 RDBMS를 사용하고 있습니까? – fancyPants

+0

시간 소인은 특정 시점을 나타냅니다. 일반적으로 INTERVAL 데이터 형식을 사용하면 SQL 데이터베이스에서 지속 기간을 나타내기를 기대할 수 있습니다. 차이점은 * look *이 같은 2 개의 간격을 추가하는 것이 의미가 있습니다 : 3:00 + 2:00. 그러나 시간이 지남에 따라 2 점을 더하는 것은 그렇지 않습니다. "3시 + 2시"는 말 그대로 * 난센스입니다. "3:00"(3 시간 의미)은 정확히 "3:00"(오전 3:00 의미)과 비슷하지만 매우 다른 의미를 가지고 있습니다. –

+0

oracle sql을 사용하고 있습니다. 그래서 내가 일하는 데 사용해야하는 데이터 유형은 무엇입니까? – mariodelcy

답변

1

이것은 타임 스탬프를 to_char() 또는 to_date()로 변환 한 Oracle의 예입니다. 당신은 내가 내 날짜 TO_TIMESTAMP을 변환 할 수 있었을 때 귀하의 경우 데이터에

SELECT to_char(to_timestamp ('2013-02-14 10:07:47.000' , 'YYYY-MM-DD HH24:MI:SS.FF'),'DD-MON-YYYY HH24:MI:SS') start_date 
FROM dual 
/

    SQL> 14-FEB-2013 10:07:47 


SELECT to_date(to_char(to_timestamp ('2013-02-14 10:07:47.000' , 'YYYY-MM-DD HH24:MI:SS.FF'),'DD-MON-YYYY HH24:MI:SS'), 'DD-MON-YYYY HH24:MI:SS') start_date 
FROM dual 
/

    SQL> 2/14/2013 10:07:47 AM 


SELECT to_char(to_timestamp ('2013-02-14 10:07:47.000' , 'YYYY-MM-DD HH24:MI:SS.FF'),'HH24') start_date 
FROM dual 
/

SQL> 10 

    SELECT to_number(to_char(to_timestamp ('2013-02-14 10:07:47.000' , 'YYYY-MM-DD HH24:MI:SS.FF'),'MI')) minutes 
    FROM dual 
/

    SQL> 7 

타임 스탬프는 이미 ... 초 후 TO_NUMBER()와 숫자로 정리해 분 만 분리 시간 시간 형식을 떠나는 일 형식을 제거 할 수 있습니다 내 코드에서. to_timestamp convesion을 무시하고 to_char(), to_number()를 사용하십시오 ...

모든 예제는 항상 테스트됩니다. 마지막 예제를 그대로 복사하여 붙여 넣어 코드와의 차이점을 확인하십시오. 내 의견보기 ...

+0

데이터를 to_number 시도했을 때 오류가 발생했습니다. 여기는 "근무 시간 총계"로 사용 된 statement.select ID, to_char (to_number (시간, 'HH24 : MI')) 문입니다. from test; – mariodelcy

+0

@mariodelcy - 마지막 예를 봅니다. 복사하여 날짜를 날짜로 바꾸고, 필요하지 않은 경우 to_timestamp를 제거하고 나머지는 모두 남겨 둡니다. 또는 결과를보기 위해 복사/붙여 넣기를 할 수 있습니다. 그런 다음 하드 코딩 된 날짜를 귀하의 테이블로 대체하십시오. 모든 예제가 테스트됩니다. 'HH24 : MI'는 숫자로 변환 할 수 없습니다. 먼저 HH24와 MI를 분리해야합니다. 게다가, 키워드 시간을 사용하고있을 수도 있습니다. 이름 바꾸기 ... – Art

+0

감사합니다. 지금 일하고있다. – mariodelcy

관련 문제