Neue T-SQL Funktionen im SQL Server 2012 (Teil 2/4) 03.02.2012

Markus Schwamberger
Markus Schwamberger, Senior eXpert

Im zweiten Artikel gehen wir auf die neuen Datums und Zeit Funktionen FROMPARTS und EOMONTH ein.

DATEFROMPARTS

Eine nützliche Neuerung sind die Funktionen xyFROMPARTS.
Hiermit kann ein Datum oder eine Zeit anhand einzelner Teile erstellt werden, statt wie bisher auf ein CAST oder CONVERT Statement zurück zu greifen.

Aus dem unschönen Statement

SELECT CAST(
CAST(Jahr AS char(4)) + '-' +
CAST(Monat AS char(2)) + '-' +
CAST(Tag AS Char(2)) AS Date
) AS MyDateViaCAST

wird nun

SELECT DATEFROMPARTS(Jahr, Monat, Tag) AS MyDateViaFROMPARTS

Die Funktion gibt es für alle Datum Datentypen und erwartet die für den Typ notwendige Anzahl an Parametern:

  • DATEFROMPARTS()
  • DATETIME2FROMPARTS()
  • DATETIMEFROMPARTS()
  • DATETIMEOFFSETFROMPARTS()
  • SMALLDATETIMEFROMPARTS()
  • TIMEFROMPARTS()

EOMONTH

Eine weitere nützliche Funktion ist EOMONTH. Diese liefert immer den letzten Tag eines Monats.

Bisher musste der letzte Tag immer selbst ausgerechnet werden:

DECLARE @myDate Datetime = '2012-02-02'
SELECT DATEADD(DAY, -1, DATEADD(MONTH, DATEDIFF(MONTH, 0, @myDate) +1, 0))
Mit SQL Server 2012 vereinfacht sich die Abfrage:
DECLARE @myDate Datetime = '2012-02-02'
SELECT EOMONTH(@myDate) AS Result
Lustigerweise gibt es keine Funktion mit welcher der erste Tag eines Monats ermittelt werden kann. Vieleicht kommt diese dann ja mit SQL Server 2015. Winking smile

 

Im dritten Teil der Serie werden neue Funktionen zum Konvertieren vorgestellt.

Share |

0 Kommentare:

Kommentar veröffentlichen