sql 返回两个时间差
在园子已经看了好久的博客,本着共享的原则,一起进步,如写的有过错还请各位大神指出。
在写Sql语句时相信大家会遇到关于时间差的问题,如果我们直接返回分钟如348分钟,这种做法显然不明智,我们的客户也不能直观的看出是**天**分钟**秒,下面这段sql脚本 希望能帮到你。
返回的格式:自己可以随意指定
-- =============================================
-- Author: elivs
-- Create date: 2015-11-12
-- Description: 根据开始时间和结束时间得到时间差
-- 返回结果:1天1小时3分
-- =============================================
CREATE FUNCTION [dbo].[fn_GetDayHourMinute]
(
-- Add the parameters for the function here
@startTime datetime,
@endTime datetime
)
RETURNS nvarchar(100)
AS
BEGIN
declare @rst nvarchar(500)
declare @day int
declare @hours int
declare @minute int
set @rst=''
set @day=floor(datediff(minute,@startTime, @endTime) / 1440)
set @hours=floor((datediff(minute,@startTime, @endTime) % 1440)/60)
set @minute=((datediff(minute,@startTime, @endTime))-
(floor(datediff(minute,@startTime, @endTime) / 1440) *1440)-
(floor((datediff(minute,@startTime,@endTime) % 1440)/60)*60))
--print @day print @hours print @minute
if(@day>0)
set @rst=cast(@day as varchar) +'天'
if(@hours>0)
set @rst=@rst+cast(@hours as varchar)+'小时'
if(@minute>0)
set @rst=@rst+cast(@minute as varchar)+'分'
RETURN @rst

浙公网安备 33010602011771号