Last_day in SQL Server

SQL Server è privo della funziona last_day di oracle, quella funzione che restituisce l’ultimo giorno del mese, dello stesso mese della data passata come parametro.

Ecco quindi la versione per SQL  Server, da creare come funzione.

ALTER FUNCTION [dbo].[Last_Day] (@DATE datetime)

RETURNS datetime

WITH EXECUTE AS CALLER

AS

BEGIN

DECLARE @loopa as bit

DECLARE @rs as datetime

DECLARE @m as int

SET @loopa = 1

SET @rs = @DATE

SET @m = DATEPART(m,@rs)

WHILE (@loopa = 1)

BEGIN

IF DATEPART(m,(@rs + 1)) <> @m

– il mese è cambiato quindi tengo la data precedente

SET @loopa = 0

ElSE 

– domani è lo stesso mese, proseguo

SET @rs = @rs + 1;

END

RETURN @rs;

END;

Loading Facebook Comments ...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *