【SQL Server】FORMAT関数で日時(DATE型)から「年月」または「年月日」を取得する

サンプル

--変更前           2020-07-07 06:13:29.337
SELECT GETDATE()

--年月にする       202007
SELECT FORMAT(GETDATE(),'yyyyMM')

--年月日にする     20200707
SELECT FORMAT(GETDATE(),'yyyyMMdd') 

--年/月/日にする① 2020/07/07
SELECT FORMAT(GETDATE(),'yyyy/MM/dd')

--年/月/日にする② 2020年07月07日
SELECT FORMAT(GETDATE(),'yyyy年MM月dd日')

実行結果

備考

YEAR関数やMONTH関数を用いれば、日時(DATE型)から「年」や「月」を取得することが可能。
だが「年月」を取得できるのはFORMAT関数のみ

CONVERT関数でもFORMAT関数とほぼ同様のことが可能。
だが「年月」を取得できるのはFORMAT関数のみ

YEAR関数やMONTH関数は、
 ・日時(DATE型)
 ・日時(DATETIME型)
 ・日時(文字列型)
の使用が可能。

FORMAT関数で日時の書式変更をする場合は、
 ・日時(DATE型)
 ・日時(DATETIME型)
の使用が可能。
※日時(文字列型)は使用できない。

YEAR関数とMONTH関数の戻り値はint型
FORMAT関数の戻り値はnvarchar型
CONVERT関数の戻り値は第1引数で指定した型

FORMAT関数は日時の書式変更のみでなく、ゼロ埋め(ゼロパディング)もできる。

参考

https://docs.microsoft.com/ja-jp/sql/t-sql/functions/format-transact-sql?view=sql-server-ver15



タイトルとURLをコピーしました