SQLServer 日付 yyyy/mm/ddに変換 よく使う日付変換

SQLServerで日付型のデータを、文字列型の「yyyy/mm/dd」に変換する方法を
いつも忘れてしまうので、備忘録として残しておきます。

 

SQLServer 日付型 yyyymmdd変換

 

CONVERT

日付型を、文字列型の「yyyymmdd」フォーマットするには、CONVERTもしくはFORMATを使う必要があります。
まずは、CONVERTを見てみましょう、使い方は、このようになります。

CONVERT(NVARCHAR, 日付 ,指定するフォーマット選択)

 

3つ目のパラメータの「指定するフォーマット」を忘れてしまうので、よく使う例を記載しておきます。

SELECT 
  CONVERT(NVARCHAR,  GETDATE(), 111) AS 'yyyy/MM/dd'
 ,CONVERT(NVARCHAR, GETDATE(), 11) AS 'yy/MM/dd'
 ,CONVERT(NVARCHAR, GETDATE(), 112) AS 'yyyymmdd'
 ,CONVERT(NVARCHAR, GETDATE(), 12) AS 'yyMMdd'
 ,CONVERT(NVARCHAR, GETDATE(), 108) AS 'HH:mm:ss'

yyyy/MM/dd|yy/MM/dd|yyyyMMdd|yyMMdd|HH:mm:ss
----------+--------+--------+------+--------
2020/03/19|20/03/19|20200319|200319|21:27:49

 

このように、3つ目のパラメータによって取得できる形が変わるので、気を付けてください。

ちなみに、GETDATE()で現在の日付を取得することができます。

 

FORMAT

続いて、FORMATを使用してみましょう。

FORMATの方がわかりやすくて、おすすめなのですが、SQLServerのバージョンが古いと使用できません。(SQLServer2012以降しか使えません)
プロジェクトによっては、使えないことがあるので注意してください。

使い方を見てみましょう。

FORMAT(日付,'yyyy/MM/dd')

 

CONVERTに比べて、FORMATだと直接「yyyy/MM/dd」を使えるので使いやすいですね。

SELECT
  FORMAT(GETDATE(),'yyyy/MM/dd') AS 'yyyy/MM/dd'
 ,FORMAT(GETDATE(),'yy/MM/dd') AS 'yy/MM/dd'
 ,FORMAT(GETDATE(),'yyyyMMdd') AS 'yyyyMMdd'
 ,FORMAT(GETDATE(),'yyMMdd') AS 'yyMMdd'
 ,FORMAT(GETDATE(),'HH:mm:ss') AS 'HH:mm:ss'

yyyy/MM/dd|yy/MM/dd|yyyyMMdd|yyMMdd|HH:mm:ss
----------+--------+--------+------+--------
2020/03/19|20/03/19|20200319|200319|21:27:49

 

FOTMATの方が直感的にわかりやすいので、個人的には好きです。

FORMATの大文字の「MM」は月、小文字の「mm」は分、になるので気を付けましょう。

 

まとめ

SQLServerで日付の型変換は、「CONVERT 」、「FORMAT」を使用しましょう。

それぞれ使いやすい方を使用してください。

ただし、FORMATは、SQLServer2012以降のみでしか使えないので気を付けてくださいね。

 

SQLServerの記事一覧

 

 

おすすめの記事