SQLServerのFORMAT関数にハマったので、忘れないうちにメモメモ。
このFORMAT関数なんですが、MSDNを見ると
となっています。パッとみると
- 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
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。