2012-08-04 2 views
0

"datetime"데이터 형식 인 "sql_data"에 "total_hours_worked"라는 열이 있습니다.총 "SQL 서버에서 작동 한 총 시간"을 찾고 싶습니다.SQL에서 날짜 시간 열의 합계 012

어떻게 하시겠습니까? 나는 봤지만 실용적인 해결책을 얻지 못했습니다.

+0

@praveen에는 내가 sum 함수는 정수를 위해 작동하기 때문에 난 당신이 내가이 과 같은 오류를 얻을 것이다 말한 수행하려고 values.if 것을 할 수 없다 "피연산자 데이터 형식 날짜는 합 연산자에 대해 유효하지 않습니다."없다 – mathewtinus

+0

@SimonWhitehead does not work buddy .. 정수는 정수입니다. 나는 시간을 합계하고 싶습니다. – mathewtinus

+0

두 필드 또는 두 값이 서로 다른 것을 찾은 다음에 만 이들의 합계를 구할 수 있습니다. – sanghavi7

답변

1

데이터를 올바르게 이해하면 다음과 같이됩니다.

declare @T table 
(
    total_hours_worked datetime 
) 

insert into @T values ('05:30:00') 
insert into @T values ('10:00:00') 
insert into @T values ('15:00:00') 

select sum(datediff(minute, 0, total_hours_worked))/60.0 as hours_worked 
from @T 

결과 : 당신은 단지 시간을 저장해야하는 경우

hours_worked 
--------------------------------------- 
30.500000 

가 대신 datetime의 정수 데이터 유형을 고려해야합니다. 더 효율적이고 쉽게 대처할 수 있습니다.

1

시도해보십시오. 여기에도 초를 고려했습니다.

declare @T table 
(
    total_hours_worked datetime 
) 

insert into @T values ('05:30:00') 
insert into @T values ('10:00:00') 
insert into @T values ('15:00:00') 
insert into @T values ('05:25:45') 

select SUM((DATEPART(hh,total_hours_worked)*60)+DATEPART(mi,total_hours_worked)+(DATEPART(ss,total_hours_worked)/(60.0)))/60.0 as TotalHours from @T 
+0

쿼리를 지금 확인하십시오, 나는 SQL 2005.Initially SQL과 함께 작동하도록 업데이 트했습니다. 그래서 SQL 2008에서 그랬어. – AnandPhadke

+0

덕분에 나에게 해결책을 준 감사하지만 이걸 좀 힌트가있어 ... – mathewtinus