読者です 読者をやめる 読者になる 読者になる

いろいろ備忘録日記

主に .NET と Python絡みのメモを公開しています。

SQLServerのFORMAT関数にハマったのでメモ (2008 R2では使えない)

SQLServerのFORMAT関数にハマったので、忘れないうちにメモメモ。

このFORMAT関数なんですが、MSDNを見ると

FORMAT Function (DAX)

となっています。パッとみると

  • 2008 R2
  • 2012
  • 2014

と見えるので、2008 R2でもサポートされていると思ってしまいます。 (思ってしまいました。)

でも、2008 R2でSQL内でFORMAT関数を書くと「そんな組み込み関数はない!」ってエラー(Error 195)になります。「なんでやねん!!」って思って、もう一度MSDNのページをよーく見ると

FORMAT Function (DAX)

って感じで、後ろに DAX ってのがくっついています。このDAXってのは、Data Analysis eXpressionsの略で、PowerPivotとかの分析ツール用のクエリです。なので、2008 R2では素のクエリ内でまだFORMAT関数が利用出来ません。正式に利用できるのは、次のバージョンである 2012 からです。

バージョンを2012に切り替えてみると、ちゃんとDAXの文字が消えます・・・。これに気付かずちょっと困りました。よく見ると、左のツリーも全然違うところ指してるし・・・。(泣

DAXってついてたらご注意を。

以下、ついでにFORMAT関数を使わずに変換するメモ。忘れないうちに。そもそも変換はアプリでするもんだと思いますが。

SQLServer 日付の文字列変換 (CONVERT, 111, 108, 120)

以下のページにいろいろなパターンが載っています。感謝。

SQL Server 2008 - Date Formats

 
 
以下、参考にしたリソースです。

FORMAT function not working in sql server 2008 R2 - Stack Overflow


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。