SQL server-date in mm-yyyy umwandeln

Ich versuche, mein date zu konvertieren, das (zB 2012-04-20 05:54:59) Format in mm-yyyy ist. Ich stieß auf einige Lösungen, die sagen, dass Sie in Varchar umwandeln müssten. Gibt es irgendwie mit der Convert-function?

Vielen Dank 🙂

Sie können die FORMAT function verwenden, die ab SQL server 2012 verfügbar ist:

 DECLARE @myDate DATETIME = '2012-04-20 05:54:59' SELECT FORMAT(@myDate, 'MM-yyyy') 

Ausgabe:

 04-2012 

Es könnte ein anmutigerer path sein, dies abzureißen, aber das unten funktioniert.

 Declare @dt datetime = GETDATE() SELECT LEFT('0' + CAST(MONTH(@dt) as varchar(2)),2) + '-' + CAST(YEAR(@dt) as char(4)) 

btw meine normale Date Conversion Cheat Blatt ist hier , aber ich sehe nicht MM-JJJJ als eines der Formate.

  select [MM-YYYY] = right(convert(varchar(10),getdate(),105),7) 

Bildbeschreibung hier eingeben

Wie Sie SQL server 2014 verwenden, können Sie FORMAT welches das Beste ist, das Sie auch anwenden können:

 SELECT CONVERT(VARCHAR(2),MONTH(yourDateTimeField)) + '-' + CONVERT(VARCHAR(4),YEAR(yourDateTimeField)) AS [MM-YYYY] FROM yourTable ORDER BY yourDateTimeField