2017-01-20 4 views
2

일주일 내 모든 직원이 전체 근무 시간을 계산해야하는 보고서가 있습니다. 이 보고서에는 24 시간 (또는 86400 초) 이상의 시간이 반영됩니다. 모든 초를 "00:00:00"형식으로 변환하여 열의 형식을 datetime 또는 time으로 유지하므로 시간 필드를 사용하여 추가 분석을 할 수 있습니다. 다음은초를 '00 : 00 : 00 '형식으로 변환 - SQL Server

내가 지금까지 시도한 것입니다 : 코드 위

Declare @WorkTimeInSeconds int 
Set @WorkTimeInSeconds = 144000 **--This value is an example. Mostly values are above 86400 seconds** 
Select ActualHoursWorked =  convert(varchar,(@WorkTimeInSeconds)/3600) 
      + ':' + right('0' + convert(varchar,((@WorkTimeInSeconds) %3600)/60),2) 
      + ':' + right('0' + convert(varchar,(@WorkTimeInSeconds) %60),2) 

내가 위에서 내가 보고서에 대한 필요가 무엇 VARCHAR를 INT에 초를 변환 그러나 필요한 걸 수 있습니다. 위의 예제에서 '40 : 00 : 00 '과 같은 결과를 얻을 수있는 datetime/time 형식의 출력이 필요합니다. 나는 모든 정보를 제공 할 수 있었으면 좋겠다. 제가 여러 날 동안이 문제로 어려움을 겪고있을 때 도와주세요.

예상 출력 : 40:00:00

+0

14만4천초에 대한 원하는 출력은 무엇입니까? –

+0

@ AnoopH.N 출력은 40:00:00이어야합니다. 죄송합니다. 예상되는 출력을 추가하지 않았습니다. 이제 질문에 추가되었습니다. –

답변

1

어쩌면 시도 CONVERT 스타일 (108)

SELECT CONVERT(varchar(10),convert(varchar,(@WorkTimeInSeconds)/3600) 
      + ':' + right('0' + convert(varchar,((@WorkTimeInSeconds) %3600)/60),2) 
      + ':' + right('0' + convert(varchar,(@WorkTimeInSeconds) %60),2),108) 
관련 문제