سلام
دوستان من یک تابع تو sqlمیخواستم که دو زمان رو بگیره واختلاف آنها را به دست بیاورد؟دو پارامتر ورودی از نوع datetime میباشد!البته تابع زیر رو خودم نوشتم
setANSI_NULLSON
set
QUOTED_IDENTIFIERON
go



ALTERFUNCTION [dbo].[fn_getTimeDiffrent](@inputTime Datetime,@OutPutTime Datetime)
RETURNSVarchar(2)
AS
BEGIN
-- Declare the return variable here
DECLARE @ReturnTime aschar
-- Add the T-SQL statements to compute the return value here
DECLARE @Temp1 asdateTime
DECLARE @Temp2 asdatetime
set @Temp1=0
set @Temp2=0
DECLARE @TEtoHS asint
DECLARE @TEtoMS asint
DECLARE @TEtoSS asint
DECLARE @TEtoSS11 asint
set @TEtoHS=0
set @TEtoMS=0
set @TEtoSS=0
--///////out
DECLARE @ReOutH asdateTime
DECLARE
@ReOutM asdateTime
DECLARE
@ReOutS asdateTime
DECLARE
@ReOutTEmp asint
set
@ReOutH =0
set @ReOutM=0
set @ReOutM=0
set @ReOutTEmp=0
--

set @TEtoHS=cast(substring(CONVERT(varchar, @Temp1, 114),1,2)asnumeric(18))
set @TEtoMS=cast(substring(CONVERT(varchar, @Temp1, 114),4,2)asnumeric(18))
set @TEtoSS=cast(substring(CONVERT(varchar, @Temp1, 114),7,2)asnumeric(18))
set @TEtoHS=@TEtoHS * 3600
set @TEtoMS=@TEtoMS * 60
set @TEtoSS=@TEtoSS+ @TEtoMS+@TEtoHS
set @Temp1= @TEtoSS
--///////////////////
set @TEtoHS=cast(substring(CONVERT(varchar, @Temp2, 114),1,2)asnumeric(18))
set @TEtoMS=cast(substring(CONVERT(varchar, @Temp2, 114),4,2)asnumeric(18))
set @TEtoSS=cast(substring(CONVERT(varchar, @Temp2, 114),7,2)asnumeric(18))
set @TEtoHS=@TEtoHS * 3600
set @TEtoMS=@TEtoMS * 60
set @TEtoSS11=@TEtoSS11+ @TEtoMS+@TEtoHS
set @Temp2=@TEtoSS
set @TEtoSS11=@TEtoSS11-@TEtoSS-- get discord time
set @ReOutH=convert(datetime,@TEtoSS11/3600)--convert to houre
set @ReOutTEmp=@ReturnTime % 3600
set @ReOutm=convert(datetime,@ReOutTEmp/60)--convert to minute
set @ReOutTEmp=@ReOutTEmp % 60
set @ReturnTime=cast(@ReOutH asVarchar(2))+':'+CAST(@ReOutm ASVarchar(2))+':'+cast(@ReOutTEmp asVarchar(2))


-- Return the result of the function
Returncast(@ReturnTime asVarchar(2))
END