现在数据库中有一表,表中有一列"ttime",类型为时间,现在写了一个存储过程,接收一个时间参数功能为,将ttime中的时间与传入的时间做比较,然后将差值返回,能保存传入的时间一定会比存放的时候大要求:差值精确到分,反回的也是相差的分钟值,(在存储过程中实现,数据库为SQL2000)例如:ttime: 2008-03-24 15:48
传入:2008-03-25 16:48执行存储过程后应该能返回:25(小时)
传入:2008-03-25 16:48执行存储过程后应该能返回:25(小时)
@d datetime
as
declare @ttime datetime
set @ttime = '2008-03-24 15:48 '
select datediff(mi,@ttime,@d)
go
@dd datetime
as
declare @ttime datetime
declare @y int,@m int,@d int,@h int,@mi int,@t int
set @ttime = '2008-03-24 15:41 '
select @t =datediff(mi,@ttime,@dd) select @d = @t /3600,@h = (@t - (@d * 3600)) /60,@mi = @t - @h *60
select case when @d > 0 then ltrim(@d)+'天' else '' end +
case when @h > 0 then ltrim(@h)+'时' else '' end +
case when @mi > 0 then ltrim(@mi)+'分' else '' end
goexec proc_name '2008-03-25 16:48'drop proc proc_name
/*
------------------------------------------
25时7分(所影响的行数为 1 行)*/
@dd datetime
as
declare @ttime datetime
declare @y int,@m int,@d int,@h int,@mi int,@t int
set @ttime = '2008-03-24 15:48 '
select @t =datediff(mi,@ttime,@dd) select @d = @t /3600,@h = (@t - (@d * 3600)) /60,@mi = @t - @h *60
select case when @d > 0 then ltrim(@d)+'天' else '' end +
case when @h > 0 then ltrim(@h)+'时' else '' end +
case when @mi > 0 then ltrim(@mi)+'分' else '' end
goexec proc_name '2008-03-25 16:48'drop proc proc_name
/*
------------------------------------------
25时(所影响的行数为 1 行)*/