📌 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
の処理内容:
- 文字列を関数内部で C# の DateTime 型に変換(指定フォーマットに基づいて)
- 出力フォーマットに従って文字列化して出力
- 必要に応じて日付の加減算も可能
🧪 例:
EX_DATECALC('2025/07/16', 'yyyy/MM/dd', 0, 0, 0, 'yyyy年M月d日')
→ "2025年7月16日"
※現在、時刻について同様に扱う専用関数は提供されていません。