22,207
社区成员
发帖
与我相关
我的任务
分享
declare @t table(开始天数 varchar(10),开始时间 varchar(10),到达天数 varchar(10),到达时间 varchar(10))
insert @t select '1', '16:00','2','12:20'
--如果开始天数,到达天数大于31
select 到达天数 * 24 + datepart(hh,到达时间) - 开始天数 * 24 - datepart(hh,开始时间)
from @t
/*
-----------
20
(1 行受影响)
*/
declare @t table(开始天数 varchar(10),开始时间 varchar(10),到达天数 varchar(10),到达时间 varchar(10))
insert @t select '1', '16:00','2','12:20'
select datediff(hh,'2008-10-'+rtrim(开始天数)+' '+开始时间,'2008-10-'+rtrim(到达天数)+' '+到达时间)
from @t
/*
-----------
20
(1 行受影响)
*/
--上面没注意,放错地方了
select datediff(n,'2008-10-'+rtrim(开始天数)+' '+开始时间,'2008-10-'+rtrim(到达天数)+' '+到达时间)
from tb
declare @tb table(startday varchar(2), starttime varchar(5), endday varchar(2), endtime varchar(5))
insert @tb
select '1', '16:00', '2', '12:20'
select convert(varchar(5),enddate-startdate,108)
from (
select cast('2008-11-'+startday+' '+starttime as datetime) as startdate,
cast('2008-11-'+endday+' '+endtime as datetime) as enddate
from @tb
) t
/*
20:20
*/
select datediff(n,'2008-10-'+rtrim(开始天数)+' '+开始时间,'2008-10-'+' '+rtrim(到达天数)+到达时间)
from tb