Time Calculation on Numbers

Published 15 November 08 07:18 AM | Madhivanan 
In Forums sometimes I read questions on how to find out the difference between two times which are stored as float

Here are some possible answers

declare @t1 char(5), @t2 char(5), @sum float

select @t1='12.56', @t2='7.58'

set @sum=cast(@t1 as float)-cast(@t2 as float)

--Method 1 : Convert to Datetime
select convert(varchar(5),dateadd(day,0,replace(@t1,'.',':'))- dateadd(day,0,replace(@t2,'.',':')),108)

--Method 2 : Number caculation1
select case when right(@sum,2)>=60 then @sum-0.4 else @sum end

--Method 3 : String caculation
select cast(left(@sum,charindex('.',@sum)-1)+case when right(@sum,charindex('.',reverse(@sum))-1)>60 then right(@sum,charindex('.',reverse(@sum))-1)-40 else right(@sum,charindex('.',reverse(@sum))-1) end/100.0 as decimal(4,2))

--Method 4 : Number calculation2
select cast(cast(@sum as int)+case when cast(@sum*100 as int)%100>=60 then cast(@sum*100 as int)%100-40 else cast(@sum*100 as int)%100 end/100.0 as decimal(4,2))

Comments

# Other SQL Server Blogs around the Web said on November 15, 2008 2:47 AM:

In Forums sometimes I read questions on how to find out the difference between two times which are stored

# SQL Server Transact-SQL (SSQA.net) : Time Calculation on Numbers said on November 15, 2008 2:49 AM:

PingBack from http://sqlserver-qa.net/blogs/t-sql/archive/2008/11/15/5078.aspx

Anonymous comments are disabled

Search

Go

This Blog

«November 2008»
SMTWTFS
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

Syndication