SQL Server 2012 – ENDOFMONTH auch in SQL Server 2008

Natürlich sind in SQL Server 2012 neue T-SQL Erweiterungen, sprich Funktionen, enthalten, die einem das Leben ein Stückchen leichter machen. Ein Beispiel dazu wäre ENDOFMONTH(). Eine Funktion, die den letzten Tag eines Monats ausgibt. Natürlich kann man eine solche Funktion auch älteren SQL Servern haben. Zunachst mal die SQL Server 2012 Function…:

SQL Server 2012: ENDOFMONTH()
SELECT EOMONTH('2.4.2011) AS LetzterAprilTag
--oder
SELECT EOMONTH(GETDATE()) AS LetzterdesMonats

 

Eine Lösung ist allerdings für SQL Server 2008 ebenfalls möglich.
CREATE  FUNCTION dbo.EOM(@DATE datetime)

RETURNS smalldatetime AS
BEGIN    
declare @datum     smalldatetime
declare @hilfsdatum     smalldatetime    
declare @Letzter    smalldatetime

set @datum    = @Date    
set @hilfsdatum = dateadd(MM,1,@Date)    
set @Letzter     = dateadd(dd,-datepart(dd,@hilfsdatum),@hilfsdatum)      RETURN(Cast(Convert(NVARCHAR(10),@Letzter,104) AS DATETIME))
END

select dbo.EOM(getdate())

 

image
Author: Fumus

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert