Previous topicNext topic
WebBuilderX > 子页面组件元素 > 表格类元素 > 列表达式 > 表达式方式创建 > 数据类型转换函数 >
转换函数

以下是Access和SQLServer数据库中的常用转换函数:

需要注意的是,上述转换函数并不是万能的。比如,非数值形式的字符型数据就不能转换成整数型。使用时请注意。

Access中的数据转换函数使用起来非常简单。例如,要将“产品ID”列和“数量”列拼接到一起,就应该将“数量”列转换为字符型。语句如下:

[产品id] + cstr([数量])

如果仅仅是转为字符型,也可以不用转换函数,直接改用“&”拼接也是可以的。具体请参考“运算符 ”。

SQLServer虽然只有两个转换函数,但它们的通用性极强,都可将指定数据转换为另外一种类型。而且,Convert函数还常用于不同格式的日期时间转换,功能非常强大。

该函数的语法格式为:Cast(expression AS data_type[(length)])

其中,expression是任何有效的表达式,包括列名;data_type表示要转换的数据类型 ;length表示要转换的数据类型长度,此参数可选。例如:

[产品id] + cast([数量] as nvarchar(10))

此语句的意思是,将数量列转为10个字符长度的nvarchar字符串之后,与产品ID列连接到一起。

该函数的语法格式为:Convert(data_type[(length)],expression[,style])

其中,前2个参数是必需的,其含义与Cast中的同名参数相同。例如,以下语句和前面的cast示例语句效果完全相同:

[产品id] + convert(nvarchar(10),[数量])

再如,将单价、数量和折扣3列数值相乘后得到的值,转为高精度小数:

 convert(decimal(10,2), [单价]*[数量]*(1-[折扣]))

第3个参数style虽然是可选的,但起到的作用非常大,它将决定日期型数据在转换为字符串之后的格式。 假如,当前的系统时间是2018年4月13日9时20分18秒626毫秒,在没有使用style参数时,语句写法如下:

convert(nvarchar,getdate())

执行之后,列的返回值为“04 13 2018 9:20AM”,也就是仅输出当前系统时间以12小时制表示的分钟数。如果希望得到符合中文习惯的完整年月日及时分秒,可将style参数设置为20或120。例如:

convert(nvarchar,getdate(),120)

这样得到的值就是“2018-04-13 09:20:18”。

Convert函数的常用日期样式如下表(仍以“2018年4月13日9时20分18秒626毫秒”的系统时间为例):

由上表可以发现,样式1-8和101-108、样式10-12和110-112的差别仅在于年份上:前面的不带世纪数位,后面的带世纪数位。