SQL Server:指定したフォーマットで日付時刻を表示するユーザー定義関数(FormatDateTime)の作成方法

SQL Server:指定したフォーマットで日付時刻を表示するユーザー定義関数(FormatDateTime)の作成方法

SQL Serverの日付時刻型(DateTime型)のデータを指定したフォーマット(書式)に変換してくれるユーザー定義関数のサンプルコード。

SQL ServerにはExcelやAccessに用意されているFormat関数がない。

それを解決するためにSQL Server用に作られたユーザー定義Format関数。

ソースは、海外のフォーラムに投稿されていた「Can I make SQL Server format dates and times for me?」の回答として投稿されていたコードを引用しています。
現在は、その投稿内容は削除されているため見ることができません。

引数に日付時刻型のデータとフォーマット形式を指定するとデータを指定したフォーマットに変換して返してくれる。

手を加えれば自分なりのフォーマットも追加できる。

以下に投稿されていたFormatDateTimeユーザー定義関数を作成するSQLスクリプトコードを記述。

日付時刻型のデータを指定したフォーマットに変換するユーザー定義関数の作成

以下に日付時刻型のデータを指定したフォーマットに変換するユーザー定義関数を作成するためのSQLスクリプトを記載する。

作成したユーザー定義関数の使用方法

作成したユーザー定義関数を使用したSELECT文を以下に記載する。


結果:20070423

詳細については、フォーラムのスレッドを参照、と言いたいところですが現在はそのスレッドは削除されており参照できない状態となっています。

コメント

  1. presso より:

    偶然見つけて使わせていただいたのですが、同じシリアル値をEXCELでみてみると、二日前の日付で変換されます。ソートキーに使う分には問題無いのですが、少し気持ち悪いです。vistaでもXPでもSQL2008でも2005でも関係なく発生しているようです。T-SQLのライブラリとかがおかしいのでしょうか…