web-dev-qa-db-fra.com

Convertir la date de SQL Server en mm-aaaa

J'essaie de convertir ma date au format (par exemple, 2012-04-20 05:54:59) en mm-aaaa. Je suis tombé sur des solutions qui disent que vous auriez besoin de convertir en varchar. Existe-t-il un moyen d'utiliser la fonction Convertir?

Merci :)

10
Prateek Daniels

Vous pouvez utiliser la fonction FORMAT, disponible à partir de SQL Server 2012:

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

Sortie:

04-2012
21
Giorgos Betsos

Il pourrait y avoir un moyen plus gracieux de retirer cela, mais ce qui suit fonctionne.

Declare @dt datetime = GETDATE() 

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

btw ma feuille de triche normale de conversion de date est ici , mais je ne vois pas MM-YYYY comme l'un des formats.

5
Jim Horn

Comme vous utilisez SQL Server 2014, vous pouvez utiliser FORMAT qui est le meilleur, vous pouvez également appliquer ceci:

SELECT CONVERT(VARCHAR(2),MONTH(yourDateTimeField)) + '-' + 
       CONVERT(VARCHAR(4),YEAR(yourDateTimeField)) AS [MM-YYYY]
FROM yourTable
ORDER BY yourDateTimeField
3
sqluser
  select [MM-YYYY] = right(convert(varchar(10),getdate(),105),7)

enter image description here

3
Dudi Konfino