- 类别:
半结构化和结构化数据函数 (类型转换)
AS_DECIMAL、AS_NUMBER¶
将 VARIANT 值转换为定点十进制值(与浮点值不匹配),精度和小数位数可选。
AS_NUMBER 与 AS_DECIMAL 同义。
语法¶
AS_DECIMAL( <variant_expr> [ , <precision> [ , <scale> ] ] )
AS_NUMBER( <variant_expr> [ , <precision> [ , <scale> ] ] )
实参¶
variant_expr
VARIANT 类型值计算的表达式。
precision
要存储的十进制数的有效位数。
scale
小数点后的有效位数。
使用说明¶
precision
的默认值为38
,scale
为0
。减少小数位数时,此函数会四舍五入,这可能会导致超出范围的误差。
示例¶
这显示了该函数的使用方法:
创建表和数据:
CREATE TABLE multiple_types ( binary1 VARIANT, date1 VARIANT, decimal1 VARIANT, time1 VARIANT, timestamp1 VARIANT ); INSERT INTO multiple_types (binary1, date1, decimal1, time1, timestamp1) SELECT TO_VARIANT(TO_BINARY('F0A5')), TO_VARIANT(TO_DATE('2018-10-10')), TO_VARIANT(TO_DECIMAL(1.23, 6, 3)), TO_VARIANT(TO_TIME('12:34:56')), TO_VARIANT(TO_TIMESTAMP_NTZ('2018-10-10 12:34:56')) ;现在运行查询:
SELECT AS_DECIMAL(decimal1, 6, 3) AS "Decimal" FROM multiple_types;输出:
+---------+ | Decimal | |---------| | 1.230 | +---------+