jueves, 4 de julio de 2013

Armar fecha con año, mes y día en Transact-SQL

Para generar una fecha en base a tener el año, mes y día en variables numéricas pero en Transact-SQL les propongo crear esta función que de ser una fecha válida nos la retornará con los parámetros enviados y de no ser así regresará NULL:

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.