有两个表时间字段是nvarchar类型的,现在需对两个进行时间对比
表结构如下
时间1 时间2
09:03 10:50
08:00 17:00结果如下
时间1 时间2 时间长
09:03 10:50 01:47
08:00 17:00 09:00不知道用什么函数能进行数据转换?
表结构如下
时间1 时间2
09:03 10:50
08:00 17:00结果如下
时间1 时间2 时间长
09:03 10:50 01:47
08:00 17:00 09:00不知道用什么函数能进行数据转换?
insert @a select '09:03', '10:50',null
union all select '08:00', '17:00',null
select a,b,c=right(100+datediff(hour,cast(a as datetime),cast(b as datetime)),2)+':'+
right(100+datediff(minute,cast(a as datetime),cast(b as datetime)) %60,2)
from @a
insert @a select '09:03', '10:50'
union all select '08:00', '17:00'
union all select '08:00', '17:06'
union all select '08:90', '17:06'
union all select '08:00', '1706'select * from @a where isdate(时间1)>0select 时间1, 时间2 , right(100+datediff(Hour,时间1,时间2),2)+':'+right(100+ datediff(minute,时间1,时间2)%60,2) as 时间长 from @awhere isdate(时间1) >0 and isdate(时间2) >0时间1 时间2 时间长
09:03 10:50 01:47
08:00 17:00 09:00
08:00 17:06 09:06
select @a='9:3',@b='10:50'
select cast((datediff(minute,cast (@a as datetime),cast (@b as datetime)))/60 as varchar) + ':'+cast((datediff(minute,cast (@a as datetime),cast (@b as datetime))) % 60 as varchar)
---------------------------------------------------------------
1:47(所影响的行数为 1 行)
insert @a select '09:03', '10:50',''
union all select '08:00', '17:00',''
union all select '08:00', '17:06',''
union all select '08:05', '17:06',''select 时间1,时间2,abs(datediff(mi, (convert(varchar(10),getdate(),120) + ' '+ 时间1+ ':00'),
(convert(varchar(10),getdate(),120) + ' '+ 时间2+ ':00'))) 时间长 from @a------------------------------------------------------------------------------------
时间1 时间2 时间长
09:03 10:50 107
08:00 17:00 540
08:00 17:06 546
08:05 17:06 541