データ型変換関数
このセクションでは、データ型間で式を変換する関数について簡単に説明します。
関数 | 動作 |
---|---|
convert | サポートされるデータ型間で式を変換します。 |
numbertostring | 指定されたマスクを使用して、整数式または浮動小数点数式から文字列式に変換します。 |
stringtotime | 指定されたマスクを使用して、文字列式を時間式に変換します。 |
timetostring | 指定されたマスクを使用して、時間式を文字列式に変換します。 |
is_valid | 指定された式が、指定された単純データ型に変換できる有効な値かどうかを判別します。 |
convert
convert (source_expr, type_name)
ここでパラメーター | 説明 |
---|---|
source_expr | サポートされるデータ型の式です。 この式は、type_name で指定されたデータ型に変換されます。 |
type_name | source_expr の変換先のデータ型です。 有効な項目は、float、float[ ]、integer、integer[ ]、string、string[]、Boolean、Boolean[ ]、time、および time[ ] です。 type_name の後に大括弧 ([ ]) が付いている場合は、source_expr は配列でもなければならないことに注意してください。配列内の各要素は、単純データ型に適用される規則にしたがって type_name に変換されます。 |
convert 関数の結果は、source_exp と type_name のデータ型によって異なります。
ブール型からの変換
source_expr がブール型の場合、convert 関数の結果は次のようになります。
ブール型からの変換先... | 結果 |
---|---|
ブール型 | 変化しません。 |
float | ブール式が true の場合、結果は 1 です。ブール式が false の場合、結果は 0 です。 |
整数型 | ブール式が true の場合、結果は 1 です。ブール式が false の場合、結果は 0 です。 |
文字列型 | ブール式が true の場合、結果は「true」です。ブール式が false の場合、結果は「false」です。 |
時間型 | 構文エラーが発生します。 |
浮動小数点型からの変換
source_expr が浮動小数点型の場合、convert 関数の結果は次のようになります。
浮動小数点型からの変換先 | 結果 |
---|---|
ブール型 | source_expr = 0 の場合、結果は false です。source_expr = 1 の場合、結果は true です。 source_expr が <> 0 でも 1 でもない場合は、構文エラーが発生します。 |
float | 変化しません。 |
整数型 | source_expr の整数部を変換します (すなわち、すべての数値の小数点以下を切り捨てます)。結果が整数の範囲に含まれないと、エラーが発生します。 |
文字列型 | 浮動小数点数を表す数字の文字列を返します。 |
時間型 | source_expr の整数部を秒数として使用して、1/1/1970 00:00:00 UTC (協定世界時) に追加します。新しい時間が返されます。 UTC (協定世界時) 以前は GMT (グリニッジ標準時) と呼ばれていました。UTC は世界標準の参照タイム・ゾーンです。 例えば、convert (5.3, time) を指定すると、1/1/1970 00:00:05 が返されます。 |
整数型からの変換
整数型からの変換先 | 結果 |
---|---|
ブール型 | source_expr = 0 の場合、結果は false です。source_expr = 1 の場合、結果は true です。 source_expr が <> 0 でも 1 でもない場合は、構文エラーが発生します。 |
float | 同等の浮動小数点数値が返されます。 |
整数型 | 変化しません。 |
文字列型 | 整数値を表す数字の文字列が返されます。 |
時間型 | source_expr を秒数として使用して、1/1/1970 00:00:00 UTC (協定世界時) に追加します。新しい時間が返されます。 例えば、convert (5, time) を指定すると、1/1/1970 00:00:05 が返されます。 |
文字列型からの変換
source_expr が文字列型の場合、convert 関数の結果は次のようになります。
文字列型からの変換先 | 結果 |
---|---|
ブール型 | source_expr = "true" または source_expr = "false" である場合以外は、構文エラーが発生します。(大文字と小文字の組み合わせは有効です)。 |
float | source_expr が浮動小数点数値の正規表現である場合以外は、構文エラーが発生します。 |
整数型 | source_expr が整数値の正規表現である場合以外は、構文エラーが発生します。 |
文字列型 | 変化しません。 |
時間型 | source_expr が時間値の有効な表現であり、ワークフロー・システムの日付時間マスクで指定されるフォーマットを使用している場合以外は、構文エラーが発生します。 |
時間型からの変換
source_expr が時間型の場合、convert 関数の結果は次のようになります。
時間型からの変換先 | 結果 |
---|---|
ブール型 | 構文エラーが発生します。 |
float | 現在のシステム時間と 1/1/1970 00:00:00 UTC (協定世界時) との差を秒数で返します。 例えば、SysTime = 1/1/1970 00:00:28 UTC の場合、convert (SysTime, float) を指定すると 28 が返されます。 現在のシステム時間が UTC 以外のタイム・ゾーンに設定されている場合、convert 関数は必要な調整を加えます。例えば、太平洋標準時 (PST) と UTC の時差は 8 時間です。SysTime = 1/1/1970 00:00:28 PST で、ローカルのタイム・ゾーンが PST の場合に convert(SysTime, float) を指定すると 28828.0 が返されます。 8(hours) * 60(minutes) *60(seconds) + 28(seconds) |
整数型 | 現在のシステム時間と 1/1/1970 00:00:00 UTC (協定世界時) との差を秒数で返します。 例えば、SysTime = 1/1/1970 00:00:28 UTC の場合、convert (SysTime, integer) を指定すると 28 が返されます。 現在のシステム時間が UTC 以外のタイム・ゾーンに設定されている場合、convert 関数は必要な調整を加えます。例えば、PST と UTC の時差は 8 時間です。SysTime = 1/1/1970 00:00:28 PST で、ローカルのタイム・ゾーンが太平洋標準時 (PST) の場合に convert(SysTime, integer) を指定すると 28828 が返されます。 8(hours) * 60(minutes) *60(seconds) + 28(seconds) |
文字列型 | source_expr の文字列表現が返されます。なお、この文字列は、ワークフロー・システムの日付時間マスクで指定されたフォーマットを使用します。 |
時間型 | 変化はありません。 |
numbertostring
この関数は、指定されたフォーマットを使用して、浮動小数点数式または整数式を文字列式に変換します。この関数は、数字を特定のフォーマット (例えば、$1,000,000) で表示する場合に使用します。また、numbertostring 関数は数値の四捨五入に使用することもできます。
numbertostring (num_exp{, num_mask}opt)
ここでパラメーター | 説明 |
---|---|
num_exp | 浮動小数点型または整数型の式です。 |
num_mask | numbertostring 関数の出力フォーマットを指定する数値マスクです。 数値マスクが入力されないと、numbertostring 関数は convert 関数と同等の動作を行います。 |
数値マスク
数値マスクは、numbertostring 関数の出力のフォーマットに使用するテンプレートです。数値マスクは、次のコンポーネントの有効な組み合わせから成る文字列式です。
コンポーネント | 意味 |
---|---|
+ (プラス符号) | マスクの最初または最後のコンポーネントの場合は、数値の符号が表示されます。 最初または最後以外の位置にある場合、プラス符号は、マスクで指定されるとおりに出力文字列内の位置に挿入されます。 次に例を示します。 numbertostring (12345, "###+##") 123+45 が出力されます。 |
- (マイナス符号) | マスクの最初または最後のコンポーネントで、数値が負である場合はマイナス符号が表示され、数値が正である場合はスペースが表示されます。 最初または最後以外の位置にある場合、マイナス符号は、マスクで指定されるとおりに出力文字列内の位置に挿入されます。 次に例を示します。 numbertostring (123456789, "###-##-####") 123-45-6789 が出力されます。 |
# (番号記号) | 有効である数字が表示されます。マスクに含まれる # の数が有効数字より多い場合は、まず右端から有効数字と同じ数の # が受け入れられ、残りの # には空白が設定されます。 |
0 (ゼロ) | 有効かどうかに関係なく、数字が表示されます。先頭および末尾の両方に 0 (ゼロ) が表示されることがあります。 |
. (小数点) | 小数点を挿入する位置を指定します。指定されない場合、小数点はマスクの右端に挿入されると見なされます。数値はマスクに収まるように四捨五入されます。マスクに入れることができる小数点の数は 1 つのみです。 |
数値マスクのサンプル
次に、numbertostring 関数が数値 0、+29、-3344、および 77.88369 を変換した場合の出力結果を示します。出力は、指定される数値マスクにしたがってフォーマットされます。
マスク | 0 | +29 | -3344 | 77.88369 |
---|---|---|---|---|
0000 | 0000 | 0029 | 3344 | 0078 |
#### | 29 | 3344 | 78 | |
$#,### | $ | $29 | $3,344 | $78 |
+#### | + | +29 | -3344 | +78 |
-#### | 29 | -3344 | 78 | |
####+ | + | 29+ | 3344- | 78+ |
####- | 29 | 3344- | 78 | |
##.## | . | 29. | ランタイム・エラー | 77.88 |
数値の四捨五入
numbertostring (Number1, "#,###.###")
3,344.779
is_valid
is_valid (expr, type)
ここでパラメーター | 説明 |
---|---|
expr | 任意の式です。 |
type | 単純データ型です (Boolean、float、integer、string、time)。 |
is_valid (str, Boolean)
is_valid ("1.2.3", float)
is_valid (1e20, integer)