web-dev-qa-db-ja.com

SQL Serverの日付をmm-yyyyに変換します

(たとえば、2012-04-20 05:54:59)形式の日付をmm-yyyyに変換しようとしています。私はあなたがvarcharに変換する必要があると言ういくつかのソリューションに出会いました。 Convert関数を使用する方法はありますか?

ありがとう:)

10
Prateek Daniels

SQL Server 2012以降で使用可能なFORMAT関数を使用できます。

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

出力:

04-2012
21
Giorgos Betsos

これをうまくやるもっと良い方法があるかもしれませんが、以下はうまくいきます。

Declare @dt datetime = GETDATE() 

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

ところで私の通常の日付変換チートシートは here ですが、MM-YYYYがフォーマットの1つとして表示されていません。

5
Jim Horn

SQL Server 2014を使用している場合、FORMATを使用できますが、これも最適です:

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