本節包含轉換表示式資料類型之函數的簡要說明。
函數 | 作用 |
---|---|
convert | 將表示式從一個支援的資料類型轉換成另一個支援的資料類型。 |
numbertostring | 使用指定的遮罩,將整數或浮點表示式轉換成字串表示式。 |
stringtotime | 使用指定的遮罩,將字串表示式轉換成時間表示式。 |
timetostring | 使用指定的遮罩,將時間表示式轉換成字串表示式。 |
is_valid | 決定指定的表示式是否為可轉換成指定簡式資料類型的有效值。 |
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 是 Boolean 類型,則 convert 函數的結果會如下所示。
從 Boolean 轉換成... | 結果 |
---|---|
Boolean | 不變更。 |
Float | 如果布林表示式為 true,則結果為 1;如果布林表示式為 false,則結果為 0。 |
Integer | 如果布林表示式為 true,則結果為 1;如果布林表示式為 false,則結果為 0。 |
String | 如果布林表示式為 true,則結果為 "true";如果布林表示式為 false,則結果為 "false"。 |
Time | 語法錯誤。 |
如果 source_expr 是 Float 類型,則 convert 函數的結果會如下所示。
從 Float 轉換成... | 結果 |
---|---|
Boolean | 如果 source_expr = 0,則結果為 false;如果 source_expr = 1,則結果為 true。 如果 source_expr <> 0 或 1,則會產生語法錯誤。 |
Float | 不變更。 |
Integer | 轉換 source_expr 的整數部分(也就是將所有數字截斷至小數點右邊)。如果結果不在整數範圍內,則會發生錯誤。 |
String | 產生代表 Float 的數值字元字串。 |
Time | 使用 source_expr 的整數部分作為要新增至 1/1/1970 00:00:00 UTC(世界標準時間)的秒數;傳回新時間。 UTC(世界標準時間)早期稱為 GMT(格林威治標準時間),UTC 是標準全球參照時區。 例如,convert (5.3, time) 會傳回 1/1/1970 00:00:05。 |
從 Integer 轉換成... | 結果 |
---|---|
Boolean | 如果 source_expr = 0,則結果為 false;如果 source_expr = 1,則結果為 true。 如果 source_expr <> 0 或 1,則會產生語法錯誤。 |
Float | 產生同等浮點值。 |
Integer | 不變更。 |
String | 產生代表 Integer 的數值字元字串。 |
Time | 使用 source_expr 作為要新增至 1/1/1970 00:00:00 UTC(世界標準時間)的秒數;傳回新時間。 例如,convert (5, time) 會傳回 1/1/1970 00:00:05。 |
如果 source_expr 是 String 類型,則 convert 函數的結果會如下所示。
從 String 轉換成... | 結果 |
---|---|
Boolean | 語法錯誤,除非 source_expr = "true" 或 source_expr = "false"。 (可接受大小寫的任何組合。) |
Float | 語法錯誤,除非 source_expr 是浮點值的合法表示法。 |
Integer | 語法錯誤,除非 source_expr 是整數值的合法表示法。 |
String | 不變更。 |
Time | 語法錯誤,除非 source_expr 是時間值的合法表示法,其使用工作流程系統的日期/時間遮罩中指定的格式。 |
如果 source_expr 是 Time 類型,則 convert 函數的結果會如下所示。
從 Time 轉換成... | 結果 |
---|---|
Boolean | 語法錯誤。 |
Float | 傳回現行系統時間與 1/1/1970 00:00:00 UTC(世界標準時間)之間的秒數。 比方說,如果 SysTime = 1/1/1970 00:00:28 UTC,convert (SysTime, float) 會傳回 28。 如果現行系統時間設為 UTC 以外的時區,則 convert 函數會進行必要的調整。例如,太平洋標準時間 (PST) 與世界標準時間存在 8 小時的時差;如果 SysTime = 1/1/1970 00:00:28 PST 且當地時區是 PST,則 convert(SysTime, float) 傳回 28828.0。 8(小時)* 60(分鐘)*60(秒)+ 28(秒) |
Integer | 傳回現行系統時間與 1/1/1970 00:00:00 UTC(世界標準時間)之間的秒數。 比方說,如果 SysTime = 1/1/1970 00:00:28 UTC,convert (SysTime, integer) 會傳回 28。 如果現行系統時間設為 UTC 以外的時區,則 convert 函數會進行必要的調整。例如,PST 與世界標準時間存在 8 小時的時差;如果 SysTime = 1/1/1970 00:00:28 PST 且當地時區是太平洋標準時間,則 convert(SysTime, integer) 傳回 28828。 8(小時)* 60(分鐘)*60(秒)+ 28(秒) |
String | 產生 source_expr 的字串表示法。 請注意,此字串使用工作流程系統的日期/時間遮罩中指定的格式。 |
Time | 不變更 |
此函數使用您所指定的格式,將浮點或整數表示式轉換成字串表示式。當您想要以特定格式(例如,$1,000,000)來顯示數字時,請使用這個函數。 您也可以使用 numbertostring 函數來捨入數字。
numbertostring (num_exp{, num_mask}opt)
其中:參數 | 說明 |
---|---|
num_exp | Float 或 Integer 類型的表示式。 |
num_mask | 決定 numbertostring 函數輸出格式的數值遮罩。 選用時請注意,如果沒有輸入數值遮罩,則 numbertostring 函數的作用等同於 convert 函數。 |
數值遮罩是用來將 numbertostring 函數輸出格式化的範本。 數值遮罩是一種字串表示式,其中含有下列元件的任何有效組合。
元件 | 意義 |
---|---|
+(加號) | 當是遮罩中的第一個或最後一個元件時,會顯示數字符號。 當位於第一個或最後一個以外的位置時,加號會以您放入遮罩中的確切位置插入輸出字串。例如: numbertostring (12345, "###+##") 輸出 123+45 |
-(減號) | 當是遮罩中的第一個或最後一個元件時,如果數字是負數,則會顯示負號,而如果數字是正數,則會顯示空格。 當位於第一個或最後一個以外的位置時,減號會以您放入遮罩中的確切位置插入輸出字串。例如: numbertostring (123456789, "###-##-####") 輸出 123-45-6789 |
#(# 記號) | 顯示有效位數。當遮罩包含的 # 超出有效位數時,最右邊的 # 會先收到數字,而超過的 # 會以空白填滿。 |
0(零) | 不論是否具有意義,都會顯示數字;可能會同時產生前導零和尾端零。 |
. (小數) | 決定小數點的位置。如果未指定,則假設小數點位於遮罩右端。數字會捨入成符合遮罩。遮罩中只允許一個小數點。 |
以下是 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 (expr, type)
其中:參數 | 說明 |
---|---|
expr | 任何表示式。 |
type | 簡式資料類型(Boolean、Float、Integer、String、Time)。 |
is_valid (str, Boolean)
is_valid ("1.2.3", float)
is_valid (1e20, integer)