martes, 18 de octubre de 2016

SQL - Último dia del MES en base a una fecha

USE [leaseoper]
GO

/*
       Creado       : 20161018 JC
       Historial    : Ultimo día del mes
       Ejecución    : SELECT leaseoper.dbo.fn_termino_mes (GETDATE())
*/

ALTER FUNCTION fn_termino_mes     (
       @fecha SMALLDATETIME 
       )
RETURNS SMALLDATETIME
AS
BEGIN

DECLARE @inicio_mes        SMALLDATETIME,
             @termino_mes SMALLDATETIME,
             @fecha_mes          CHAR(6)

SELECT @fecha_mes   = CONVERT(CHAR(06), DATEADD(MONTH, - 1, @fecha), 112)
SELECT @inicio_mes  = CONVERT(SMALLDATETIME, @fecha_mes + '01', 112) --primer dia del mes 
SELECT @termino_mes = DATEADD(DAY, - 1, DATEADD(MONTH, 1, @inicio_mes)) --ultimo dia del mes

RETURN @termino_mes
END

No hay comentarios:

Publicar un comentario