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

 

Fumus

Share
Published by
Fumus

Recent Posts

SQL Server 2019 – static data masking – Du Opfer!

In SQL Server 2016 wurde das sog. dynamic data masking eingeführt. Eine Möglichkeit Daten bei…

5 Jahren ago

MinRole – Oder wie alles etwas einfacher wird

Seit Sharepoint Server 2007 präsentiert sich die Installation immer auf die gleiche Weise. Gerade mal,…

8 Jahren ago

Schritt für Schritt: SQL 2016 – Dynamic Data Masking

Es weihnachtet! Gerade bekam ich von einer Kollegin Plätzchen angeboten mit der Größe eines Diskus…

8 Jahren ago

Schritt für Schritt: SQL Server 2016 – temporal tables

Nein, bitte nicht verwechseln: temporal tables haben nichts zu tun mit temporary tables table variables…

9 Jahren ago

SQL Server 2016 Schritt für Schritt–Installation und First Look

SQL Server 2016.. habe ich schon erwähnt, dass ich den ziemlich cool finde? Wollen wir…

9 Jahren ago

SQL Server 2016 – CTP2

Nach langer Zeit wieder mal eine Artikel von mir.. der mich besonders erfreut. SQL Server…

9 Jahren ago