CONVERT
功能描述
Vastbase在SQL Server兼容模式下支持CONVERT函数,用于将表达式由一种数据类型转换为另一种数据类型,返回转换后的指定数据类型的值。
注意事项
该功能仅在数据库兼容模式为SQL Server时支持(即数据库实例初始化时指定DBCOMPATIBILITY='MSSQL')。
SQL Server兼容模式下的DATETIME类型与其它兼容模式下的DATETIME类型并不完全相同,注意区分。
语法格式
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
参数说明
data_type
目标数据类型。
length
指定目标数据类型长度的可选整数,适用于允许用户指定长度的数据类型。
默认值:30
expression
待转换的有效表达式。
style
用于指定CONVERT函数将如何进行转换的一种整数表示。
默认值:0
- 如果样式值style为NULL,则返回 NULL。
- 当进行日期时间类型到字符串类型的转换时,style支持的取值以及对应输出样式参考表1。
表1 日期时间类型转换style参考
示例
示例1: 直接调用CONVERT函数,将timestamp类型转换为varchar类型。
不指定style(等同于指定style为0):
select convert(varchar,now());
函数now()返回timestamp类型的当前日期及时间。
返回结果如下:
now --------------------- Aug 17 2023 02:28PM (1 row)
指定style为不同取值,转换结果为特定样式的字符串:
select convert(varchar,now(),102); select convert(varchar,now(),8); select convert(varchar,now(),110);
返回结果依次如下:
now ------------ 2023.08.17 (1 row) now ---------- 14:34:10 (1 row) now ------------ 08-17-2023 (1 row)
示例2: 在函数和存储过程中调用CONVERT函数。
1、创建函数。
create function fun_1131634(b1 int,b2 out char(8))return char(8)
as
begin
select (convert(char(8),b1) || 'oo') into b2;
return b2;
end;
/
2、调用新建函数验证结果。
select convert(text,fun_1131634(3));
结果返回如下:
fun_1131634
-------------
3oo
(1 row)
3、创建存储过程。
create procedure pro_1131634(b1 int,b2 out char(8))
as
begin
select (convert(char(8),b1) || 'oo') into b2;
raise notice '%',b2;
end;
/
4、调用存储过程验证结果。
select convert(text,pro_1131634(6));
结果返回如下:
NOTICE: 6oo
CONTEXT: referenced column: pro_1131634
pro_1131634
-------------
6oo
(1 row)