2011-04-08 212 views
0

下面是我的表中的字段,它的值字段的数据类型为varchar在SQL查询时需要帮助

我想时间ActualTimeIn和银泰之间的差异(以小时:分钟:秒)

ActualTimeIn InTime 
09:30:00 AM 1:23:00 PM 

09:30:00 AM 11:30:00 AM 

09:30:00 AM 11:29:00 AM 

预期输出是这样的:

LateComing 

3:53:00 
2:00:00 
1:59:00 

回答

3
declare @T table(ActualTimeIn time(0), InTime time(0)) 

insert into @T values 
('09:30:00 AM', '1:23:00 PM'), 
('09:30:00 AM', '11:30:00 AM'), 
('09:30:00 AM', '11:29:00 AM') 

select cast(dateadd(s, datediff(s, ActualTimeIn, InTime), 0) as time(0)) 
from @T 

结果

---------------- 
03:53:00 
02:00:00 
01:59:00 
+0

感谢的Mikael告诉我,我怎么轮第二至2个位数 – gbbosmiya 2011-04-08 06:43:17

+1

投结果为varchar(8) – 2011-04-08 06:53:55

+1

@ user350104,@nihcap - 您可以使用时间(0)的数据类型来代替。 – 2011-04-08 07:25:22