xobQuery のEX_FORMAT関数について

📌 xobQuery の EX_FORMAT 関数について

xobQuery で使用可能な拡張関数 EX_FORMAT は、C#string.Format に近い機能を持ち、文字列の書式整形に使用できます。


✅ 基本構文

EX_FORMAT(書式文字列, 値1, 値2, ...)

🧪 例:

EX_FORMAT('{0} さん、こんにちは。今日の最高気温は {1} 度です。', name, temperature)

{0}, {1}プレースホルダで、第2引数以降の値に順に対応します。

 

 

プレースホルダには、書式指定文字列を付加することで、値に書式を適用できます。


🔢 数値フォーマット(標準書式指定子)

書式 内容 例(値=1234.56) 出力例
C 通貨 {0:C} ¥1,234(カルチャ依存)
D 整数 {0:D6} 001234
E 指数表記 {0:E} 1.234560E+003
F 固定小数点 {0:F2} 1234.56
G 汎用 {0:G} 1234.56
N 桁区切り {0:N} 1,234.56
P パーセント {0:P}(0.123) 12.30 %
X 16進数 {0:X}(255) FF

🧩 カスタム書式の例

EX_FORMAT('{0:0000}', 12)           → "0012"
EX_FORMAT('{0:#,##0.00}', 1234.5)   → "1,234.50"

⚠️ 注意:CAST が必要です

xobQuery では、DBにすべての値を文字列として格納します。
そのため、数値の書式を適用するには、明示的な型変換(CAST) が必要です。

 

🧪 例:

EX_FORMAT('{0:N}', CAST(item5 AS REAL))
EX_FORMAT('{0:D12}', CAST(item5 AS INT)) -- 前0を付加する場合、値は整数型(INT)である必要があります。

 

📅 日付のフォーマットについて

SQLite には日付型が存在しないため、EX_FORMAT で日付の書式指定を適用することは できません

代替として、EX_DATECALC 関数 を使って日付の整形を行います。

🔁 EX_DATECALC の処理内容:

  1. 文字列を関数内部で C# の DateTime 型に変換(指定フォーマットに基づいて)
  2. 出力フォーマットに従って文字列化して出力
  3. 必要に応じて日付の加減算も可能

🧪 例:

EX_DATECALC('2025/07/16', 'yyyy/MM/dd', 0, 0, 0, 'yyyy年M月d日')
→ "2025年7月16日"

現在、時刻について同様に扱う専用関数は提供されていません。