转换函数
本节提供 Databend 中转换函数的参考信息。
在将一个值从一种类型转换为另一种类型时,请注意以下事项:
-
当从浮点数、十进制数或字符串转换为整数或带有小数部分的十进制数时,Databend 会将值四舍五入为最接近的整数。这是由设置
numeric_cast_option
(默认为 'rounding')控制的,该设置控制数值类型转换操作的行为。当numeric_cast_option
被显式设置为 'truncating' 时,Databend 将截断小数部分,丢弃任何小数值。示例:SELECT CAST('0.6' AS DECIMAL(10, 0)), CAST(0.6 AS DECIMAL(10, 0)), CAST(1.5 AS INT);
┌──────────────────────────────────────────────────────────────────────────────────┐
│ cast('0.6' as decimal(10, 0)) │ cast(0.6 as decimal(10, 0)) │ cast(1.5 as int32) │
├───────────────────────────────┼─────────────────────────────┼────────────────────┤
│ 1 │ 1 │ 2 │
└──────────────────────────────────────────────────────────────────────────────────┘
SET numeric_cast_option = 'truncating';
SELECT CAST('0.6' AS DECIMAL(10, 0)), CAST(0.6 AS DECIMAL(10, 0)), CAST(1.5 AS INT);
┌──────────────────────────────────────────────────────────────────────────────────┐
│ cast('0.6' as decimal(10, 0)) │ cast(0.6 as decimal(10, 0)) │ cast(1.5 as int32) │
├───────────────────────────────┼─────────────────────────────┼────────────────────┤
│ 0 │ 0 │ 1 │
└──────────────────────────────────────────────────────────────────────────────────┘下表总结了数值类型转换操作,突出显示了不同源和目标数值数据类型之间的转换可能性。请注意,它指定了字符串到整数转换的要求,其中源字符串必须包含一个整数值。
源类型 目标类型 字符串 十进制 浮点数 十进制 十进制 十进制 浮点数 整数 十进制 整数 字符串(整数) 整数 -
Databend 还提供了多种函数,用于将表达式转换为不同的日期和时间格式。更多信息,请参见 日期与时间函数。