.net column

.NET開発者のためのブログメディア
日付と時刻

SQL ServerのFORMATで日付の書式を指定し、文字列で出力する

2020年09月23日

海外で使用するシステム開発を行う場合、日付は現地のフォーマットで出力する必要があります。例えば、日本では日付のフォーマットは「YYYY/MM/DD」が基本的ですが、米国では「DD/MM/YYYY」となります。このように、現地の日付スタイルに変更するときに大いに役立つのがFORMAT関数です。SQL Serverを利用するならば、ぜひ使い方は覚えておきたい関数のひとつですので、ここではFORMAT関数について確認していきましょう。

SE
海外の子会社が使用するシステムを開発しています。日付を現地のフォーマットで出力したいのですが、どのようにして対応すれば良いでしょうか?
PM
そのような場合には、FORMAT関数を使用しましょう。使い方さえマスターしておけば、簡単に日付の書式を変えて出力できますよ。

実行環境
・SQL Server 2017

まずはSQL Serverの日付型を確認

SQL Serverでは、日付型のデータ型が数種類用意されていますが、ここではよく使う3つの種類を確認していきます。

DATE型

日付を格納するのに使用するデータ型です。形式は「YYYY-MM-DD」です。ハイフン(-)で区切られている箇所は、スラッシュ(/)やピリオド(.)で区切ることも可能です。
DATE型の最小単位は日であるため、時間まで不要な場合に使用する型となります。

表示例①:2020-08-27
表示例②:2020/08/27
表示例③:2020.08.27

DATETIME型

日付・時刻を格納するのに使用するデータ型です。形式は「YYYY-MM-DD hh:mm:dd[.mmm]」です。最小単位は3.33msとなります。

表示例①:2020-08-27 11:12:13
表示例②:2020/08/27 11:12:13.487

DATETIME2型

日付・時刻を格納するのに使用するデータ型です。形式は「YYYY-MM-DD hh:mm:dd[.nnnnnnn]」です。最小単位は100nsとなります。

表示例①:2020-08-27 11:12:13
表示例②:2020/08/27 11:12:13.0000001

FORMAT関数を用いた書式指定の方法

それでは、FORMAT関数を用いた書式の指定方法を解説していきます。シンプルなFORMAT関数の使い方を以下に記載します。

実行結果
書式指定の結果

また、上記以外にもFORMAT関数は、日付だけでなく数値項目を文字列に変換することにも利用できます。

日付や時刻のカスタムフォーマットの使い方

続いて、カスタムフォーマットを利用したFORMAT関数の使い方を解説していきます。SQL Serverでのカスタムフォーマットを指定する場合には、注意が必要です。月に該当する箇所は大文字の「MM」を使用します。これは分に該当する「mm」と区別させるためです。残りの年や日、時、秒はすべて小文字で設定します。このルールを守らないと、カスタムフォーマットで指定した日付は取得できませんので、覚えておきましょう。

カスタムフォーマットを利用したFORMAT関数の使い方は以下に記載します。

実行結果
カスタムフォーマットの実行結果

SE
思っていたよりも簡単に日付の書式を変えることができました!まだまだ海外のいろいろな拠点に子会社が展開されていますので、その国にあった日付の書式を指定して開発を進めていきます。
PM
今回はSQL Serverを題材にして、FORMAT関数での日付書式の指定方法を解説しましたが、他のデータベースでもこれらのことは同じようなやり方で対応できます。自分で様々な書式を指定して、使い方を早くマスターしましょう!

FORMAT関数を活用して、その国にあった日付書式を

今回は米国式の日付フォーマットでサンプルプログラムを作成しました。他の国も指定して、その国が利用している日付フォーマットにデータを変換して出力することができます。海外で使うアプリケーション開発を行う現場では、FORMAT関数を利用した日付を取得するプログラミングは必要です。この機会に使い方をマスターして、開発現場で活用していきましょう。

>>>SQL Serverの案件を探すならFEnet .NET Navi


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)