sql server - SQL Time Conversion -


i having trouble conversion of time.

i have table called 'totaltime' set int , holds time in seconds only. want convert these seconds days, hours, minutes, seconds e.g. 01d 09:26:43.

now show code using:

select [buildid],[product],[program],   sum(case when [state] = 'running' cast(totaltime int) else 0 end) [running], sum(case when [state] = 'break' cast(totaltime int) else 0 end) [break]   [line_log].[dbo].[line1log]  group [buildid], [product], [program] 

so can see grouping [state] column , display results of 'totaltime' in format mentioned above.

now have tried code not work cannot convert int varchar

select [buildid],[product],[program],  sum(case when [state] = 'running' cast(floor(totaltime / 86400) varchar(10))+'d ' + convert(varchar(5), dateadd(second, totaltime, '19000101'), 8) else 0 end) [running]  [line_log].[dbo].[line1log]  group [buildid], [product], [program] 

the above not display in exact format wanted either.

just wondering if willing me on one?

thanks taking time read :)

you should convert calculated seconds after summing , grouping:

and use varchar(8) instead of varchar(5).

select [buildid],[product],[program],     cast(floor([running] / 86400) varchar(10))+'d ' + convert(varchar(8), dateadd(second, [running], '19000101'), 8) [running],     cast(floor([break] / 86400) varchar(10))+'d ' + convert(varchar(8), dateadd(second, [break], '19000101'), 8) [break] (     select [buildid],[product],[program],         sum(case when [state] = 'running' cast(totaltime int) else 0 end) [running],         sum(case when [state] = 'break' cast(totaltime int) else 0 end) [break]     [line_log].[dbo].[line1log]     group [buildid], [product], [program] ) t 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -