Antes que nada muchas gracias por tu respuesta, adapte tu código al anterior y me dio esto:
Código SQL:
Ver originalALTER FUNCTION [dbo].[HoraInicialINT]
( @HISAP2 nvarchar(10),
@HFSAP2 nvarchar(10),
@FISAP DateTIME ,
@FFSAP DATEtime
)
RETURNS nvarchar(10)
AS
BEGIN
-- COnversion de horaS
SET @hisap2 = RIGHT('0000' + @hisap2, 4)
SET @HFSAP2 = RIGHT('0000' + @HFSAP2, 4)
SET @FISAP = CAST( CONVERT(VARCHAR, @fisap,112)
+ ' '
+ SUBSTRING(@hisap2,1,2)
+ ':'
+ SUBSTRING(@HISAP2,3,2) AS DATETIME)
SET @FFSAP = CAST( CONVERT(VARCHAR, @FFSAP,112)
+ ' '
+ SUBSTRING(@HFSAP2,1,2)
+ ':'
+ SUBSTRING(@HFSAP2,3,2) AS DATETIME)
RETURN CAST(CAST((DATEDIFF(MINUTE,0, @FFSAP) -
DATEDIFF(MINUTE,0, @FISAP))/60.00 AS DECIMAL(9,6)) AS VARCHAR)
END
GO
Pero al usar el siguiente query:
Código SQL:
Ver originalSELECT dbo.[HORAINICIALINT]('20120710' ,'1240', '20120712', '1600') [DIFERENCIA EN HRAS]
Me devuelve este error:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
¿Alguna idea de que esté mal en la función?
Saludos y gracias por la ayuda.