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 :)
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
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.
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
select [MM-YYYY] = right(convert(varchar(10),getdate(),105),7)