CREATE FUNCTION dbo.CrearFecha
(@annio SMALLINT, @mes TINYINT, @dia TINYINT)
RETURNS DATETIME AS
BEGIN
DECLARE @tmp CHAR(8), @r DATETIME
SET @tmp = CAST(@annio AS CHAR(4)) + CAST(@mes AS CHAR(2)) + CAST(@dia AS
CHAR(2))
IF ISDATE(@tmp) = 0
SET @r = NULL
ELSE
SET @r = @tmp
RETURN @r
END
GO
SELECT dbo.CrearFecha(2013,7,4) Fecha
GO
Espero les pueda ser de utilidad.
Corregí algo.
ResponderEliminarCREATE FUNCTION dbo.CrearFecha
(@annio SMALLINT, @mes TINYINT, @dia TINYINT)
RETURNS DATETIME AS
BEGIN
DECLARE @tmp CHAR(16), @r DATETIME
SET @tmp = CAST(@annio AS CHAR(4)) + '-' + CAST(@mes AS CHAR(2)) + '-' + CAST(@dia AS CHAR(2))
IF ISDATE(@tmp) = 0
SET @r = NULL
ELSE
SET @r = @tmp
RETURN @r
END