数据类型转换函数
本节包含对用于将表达式从一种数据类型转换为另一种数据类型的函数的简要描述。
函数 | 用途 |
---|---|
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 的数据类型不同而不同。
从 Boolean 类型进行转换
如果 source_expr 为 Boolean 类型,那么 convert 函数的结果为如下所示。
从 Boolean 类型转换为... | 结果 |
---|---|
Boolean | 不变。 |
float | 如果布尔表达式为 true,那么结果为 1;如果布尔表达式为 false,那么结果为 0。 |
integer | 如果布尔表达式为 true,那么结果为 1;如果布尔表达式为 false,那么结果为 0。 |
string | 如果布尔表达式为 true,那么结果为“true”;如果布尔表达式为 false,那么结果为“false”。 |
time | 将产生语法错误。 |
从 float 类型进行转换
如果 source_expr 为 float 类型,那么 convert 函数的结果为如下所示。
从 float 类型转换为... | 结果 |
---|---|
Boolean | 如果 source_expr = 0,那么结果为 false;如果 source_expr = 1,那么结果为 true。 如果 source_expr <> 0 或 1,那么将产生语法错误。 |
float | 不变。 |
integer | 转换 source_expr 的整数部分(即,将所有数目截断到小数点右边)。如果结果不在整数范围内,那么将发生错误。 |
string | 将产生一个用于表示浮点值的数字字符串。 |
time | 使用 source_expr 的整数部分作为要向 1/1/1970 00:00:00 UTC(全球标准时间)增加的秒数;将返回新值。 UTC(全球标准时间)以前称为 GMT(格林威治标准时间),UTC 是标准的全球参照时区。 例如,convert (5.3, time) 将返回 1/1/1970 00:00:05。 |
从 integer 类型进行转换
从 integer 类型转换为... | 结果 |
---|---|
Boolean | 如果 source_expr = 0,那么结果为 false;如果 source_expr = 1,那么结果为 true。 如果 source_expr <> 0 或 1,那么将产生语法错误。 |
float | 产生等价的浮点值。 |
integer | 不变。 |
string | 将产生一个用于表示整数值的数字字符串。 |
time | 使用 source_expr 作为要向 1/1/1970 00:00:00 UTC(全球标准时间)增加的秒数;将返回新值。 例如,convert (5, time) 将返回 1/1/1970 00:00:05。 |
从 string 类型进行转换
如果 source_expr 为 string 类型,那么 convert 函数的结果为如下所示。
从 string 类型转换为... | 结果 |
---|---|
Boolean | 除非 source_expr = "true" 或者 source_expr = "false",否则将发生语法错误。(可接受大小写的任意组合。) |
float | 除非 source_expr 是浮点值的合法表示,否则将发生语法错误。 |
integer | 除非 source_expr 是整数值的合法表示,否则将发生语法错误。 |
string | 不变。 |
time | 除非 source_expr 是时间值的合法表示,并且使用在工作流程系统的日期/时间掩码中所指定的格式,否则将发生语法错误。 |
从 time 类型进行转换
如果 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) 与 UTC 之间存在 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 与 UTC 之间存在 8 个小时的时差;如果 SysTime = 1/1/1970 00:00:28 PST,并且本地时区为太平洋标准时间,那么 convert(SysTime, integer) 将返回 28828。 8(小时)* 60(分钟)*60(秒)+ 28(秒) |
string | 将产生 source_expr 的字符串表示。请注意,此字符串使用在工作流程系统的日期/时间掩码中所指定的格式。 |
time | 不变。 |
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 和结尾 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
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)