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())