跳到主要内容
跳到主要内容

类型转换函数

数据转换的常见问题

ClickHouse 通常使用 与 C++ 程序相同的行为

to<type> 函数和 cast 在某些情况下的行为不同,例如在 LowCardinality 的情况下:cast 会移除 LowCardinality 特性,而 to<type> 函数则不会。 Nullable 也是如此,这种行为与 SQL 标准不兼容,可以通过 cast_keep_nullable 设置进行更改。

备注

如果数据类型的值被转换为较小的数据类型(例如从 Int64 转换为 Int32)或在不兼容的数据类型之间转换(例如从 String 转换为 Int),要注意潜在的数据丢失。确保仔细检查结果是否符合预期。

示例:

toBool

将输入值转换为 Bool 类型的值。如果发生错误,则抛出异常。

语法

参数

  • expr — 返回数字或字符串的表达式。表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值。
  • Float32/64 类型的值。
  • 字符串 truefalse(大小写不敏感)。

返回值

  • 根据参数的评估返回 truefalseBool

示例

查询:

结果:

toInt8

将输入值转换为 Int8 类型的值。如果发生错误,则抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

不支持的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt8('0xc0fe');
备注

如果输入值无法在 Int8 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。 例如: SELECT toInt8(128) == -128;

返回值

  • 8 位整数值。Int8
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt8OrZero

类似于 toInt8,此函数将输入值转换为 Int8 类型的值,但在发生错误时返回 0

语法

参数

  • x — 数字的字符串表示。String

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 0):

  • 普通 Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt8OrZero('0xc0fe');
备注

如果输入值无法在 Int8 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 8 位整数值,否则返回 0Int8
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt8OrNull

类似于 toInt8,此函数将输入值转换为 Int8 类型的值,但在发生错误时返回 NULL

语法

参数

  • x — 数字的字符串表示。String

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 \N

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt8OrNull('0xc0fe');
备注

如果输入值无法在 Int8 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 8 位整数值,否则返回 NULLInt8 / NULL
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt8OrDefault

类似于 toInt8,此函数将输入值转换为 Int8 类型的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式 / String
  • default(可选)— 如果解析类型为 Int8 失败,则返回的默认值。Int8

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

返回默认值的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt8OrDefault('0xc0fe', CAST('-1', 'Int8'));
备注

如果输入值无法在 Int8 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 8 位整数值,否则返回传递的默认值(如果传递)或不返回 0Int8
备注
  • 该函数使用 向零舍入,这意味着它截断数字的小数位。
  • 默认值类型应与转换类型相同。

示例

查询:

结果:

另请参见

toInt16

将输入值转换为 Int16 类型的值。如果发生错误,则抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

不支持的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt16('0xc0fe');
备注

如果输入值无法在 Int16 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。 例如: SELECT toInt16(32768) == -32768;

返回值

  • 16 位整数值。Int16
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt16OrZero

类似于 toInt16,此函数将输入值转换为 Int16 类型的值,但在发生错误时返回 0

语法

参数

  • x — 数字的字符串表示。String

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 0):

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt16OrZero('0xc0fe');
备注

如果输入值无法在 Int16 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 16 位整数值,否则返回 0Int16
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt16OrNull

类似于 toInt16,此函数将输入值转换为 Int16 类型的值,但在发生错误时返回 NULL

语法

参数

  • x — 数字的字符串表示。String

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 \N

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt16OrNull('0xc0fe');
备注

如果输入值无法在 Int16 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 16 位整数值,否则返回 NULLInt16 / NULL
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt16OrDefault

类似于 toInt16,此函数将输入值转换为 Int16 类型的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式 / String
  • default(可选)— 如果解析类型为 Int16 失败,则返回的默认值。Int16

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

返回默认值的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt16OrDefault('0xc0fe', CAST('-1', 'Int16'));
备注

如果输入值无法在 Int16 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 16 位整数值,否则返回传递的默认值(如果传递)或 0(如果不传递)。Int16
备注
  • 该函数使用 向零舍入,这意味着它截断数字的小数位。
  • 默认值类型应与转换类型相同。

示例

查询:

结果:

另请参见

toInt32

将输入值转换为 Int32 类型的值。如果发生错误,则抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

不支持的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt32('0xc0fe');
备注

如果输入值无法在 Int32 的范围内表示,则结果出现溢出或下溢。 这不被视为错误。 例如: SELECT toInt32(2147483648) == -2147483648;

返回值

  • 32 位整数值。Int32
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt32OrZero

类似于 toInt32,此函数将输入值转换为 Int32 类型的值,但在发生错误时返回 0

语法

参数

  • x — 数字的字符串表示。String

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 0):

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt32OrZero('0xc0fe');
备注

如果输入值无法在 Int32 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 32 位整数值,否则返回 0Int32
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt32OrNull

类似于 toInt32,此函数将输入值转换为 Int32 类型的值,但在发生错误时返回 NULL

语法

参数

  • x — 数字的字符串表示。String

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 \N

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt32OrNull('0xc0fe');
备注

如果输入值无法在 Int32 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 32 位整数值,否则返回 NULLInt32 / NULL
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt32OrDefault

类似于 toInt32,此函数将输入值转换为 Int32 类型的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式 / String
  • default(可选)— 如果解析类型为 Int32 失败,则返回的默认值。Int32

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

返回默认值的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt32OrDefault('0xc0fe', CAST('-1', 'Int32'));
备注

如果输入值无法在 Int32 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 32 位整数值,否则返回传递的默认值(如果传递)或 0(如果不传递)。Int32
备注
  • 该函数使用 向零舍入,这意味着它截断数字的小数位。
  • 默认值类型应与转换类型相同。

示例

查询:

结果:

另请参见

toInt64

将输入值转换为 Int64 类型的值。如果发生错误,则抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

不支持的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt64('0xc0fe');
备注

如果输入值无法在 Int64 的范围内表示,则结果出现溢出或下溢。 这不被视为错误。 例如: SELECT toInt64(9223372036854775808) == -9223372036854775808;

返回值

  • 64 位整数值。Int64
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt64OrZero

类似于 toInt64,此函数将输入值转换为 Int64 类型的值,但在发生错误时返回 0

语法

参数

  • x — 数字的字符串表示。String

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 0):

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt64OrZero('0xc0fe');
备注

如果输入值无法在 Int64 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 64 位整数值,否则返回 0Int64
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt64OrNull

类似于 toInt64,此函数将输入值转换为 Int64 类型的值,但在发生错误时返回 NULL

语法

参数

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 \N

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt64OrNull('0xc0fe');
备注

如果输入值无法在 Int64 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 64 位整数值,否则返回 NULLInt64 / NULL
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt64OrDefault

类似于 toInt64,此函数将输入值转换为 Int64 类型的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式 / String
  • default(可选)— 如果解析类型为 Int64 失败,则返回的默认值。Int64

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

返回默认值的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt64OrDefault('0xc0fe', CAST('-1', 'Int64'));
备注

如果输入值无法在 Int64 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 64 位整数值,否则返回传递的默认值(如果传递)或 0(如果不传递)。Int64
备注
  • 该函数使用 向零舍入,这意味着它截断数字的小数位。
  • 默认值类型应与转换类型相同。

示例

查询:

结果:

另请参见

toInt128

将输入值转换为 Int128 类型的值。如果发生错误,则抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

不支持的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt128('0xc0fe');
备注

如果输入值无法在 Int128 的范围内表示,则结果出现溢出或下溢。 这不被视为错误。

返回值

  • 128 位整数值。Int128
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt128OrZero

类似于 toInt128,此函数将输入值转换为 Int128 类型的值,但在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式 / String

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 0):

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt128OrZero('0xc0fe');
备注

如果输入值无法在 Int128 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 128 位整数值,否则返回 0Int128
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt128OrNull

类似于 toInt128,此函数将输入值转换为 Int128 类型的值,但在发生错误时返回 NULL

语法

参数

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 \N

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt128OrNull('0xc0fe');
备注

如果输入值无法在 Int128 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 128 位整数值,否则返回 NULLInt128 / NULL
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

另请参见

toInt128OrDefault

类似于 toInt128,此函数将输入值转换为 Int128 类型的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式 / String
  • default(可选)— 如果解析类型为 Int128 失败,则返回的默认值。Int128

支持的参数:

  • (U)Int8/16/32/64/128/256。
  • Float32/64。
  • (U)Int8/16/32/128/256 的字符串表示。

返回默认值的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt128OrDefault('0xc0fe', CAST('-1', 'Int128'));
备注

如果输入值无法在 Int128 的范围内表示,则会发生结果的溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,返回 128 位整数值,否则返回传递的默认值(如果传递)或 0(如果不传递)。Int128
备注
  • 该函数使用 向零舍入,这意味着它截断数字的小数位。
  • 默认值类型应与转换类型相同。

示例

查询:

结果:

另请参见

toInt256

将输入值转换为类型 Int256 的值。如果发生错误,则会抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。 表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

不支持的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt256('0xc0fe');
备注

如果输入值无法在 Int256 的范围内表示,则结果会出现溢出或下溢。 这不被视为错误。

返回值

  • 256 位整数值。 Int256
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toInt256OrZero

toInt256,此函数将输入值转换为类型 Int256 的值,但在发生错误时返回 0

语法

参数

  • x — 数字的字符串表示。 字符串

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 0):

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt256OrZero('0xc0fe');
备注

如果输入值无法在 Int256 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 256 位整数值,如果成功,则返回 0Int256
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toInt256OrNull

toInt256,此函数将输入值转换为类型 Int256 的值,但在发生错误时返回 NULL

语法

参数

  • x — 数字的字符串表示。 字符串

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 \N

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt256OrNull('0xc0fe');
备注

如果输入值无法在 Int256 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 256 位整数值,如果成功,则返回 NULLInt256 / NULL
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toInt256OrDefault

toInt256,此函数将输入值转换为类型 Int256 的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。 表达式 / 字符串
  • default(可选) — 如果解析为类型 Int256 不成功,则返回的默认值。 Int256

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

返回默认值的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toInt256OrDefault('0xc0fe', CAST('-1', 'Int256'));
备注

如果输入值无法在 Int256 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 256 位整数值,如果成功,则返回默认值(如果传递),否则返回 0(如果未传递)。 Int256
备注
  • 该函数使用 向零舍入,意味着它会截断数字的小数位。
  • 默认值类型应与转换类型相同。

示例

查询:

结果:

另见

toUInt8

将输入值转换为类型 UInt8 的值。如果发生错误,则会抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。 表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

不支持的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt8('0xc0fe');
备注

如果输入值无法在 UInt8 的范围内表示,则结果会溢出或下溢。 这不被视为错误。 例如: SELECT toUInt8(256) == 0;

返回值

  • 8 位无符号整数值。 UInt8
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt8OrZero

toUInt8,此函数将输入值转换为类型 UInt8 的值,但在发生错误时返回 0

语法

参数

  • x — 数字的字符串表示。 字符串

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 0):

  • 普通 Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt8OrZero('0xc0fe');
备注

如果输入值无法在 UInt8 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 8 位无符号整数值,如果成功,则返回 0UInt8
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt8OrNull

toUInt8,此函数将输入值转换为类型 UInt8 的值,但在发生错误时返回 NULL

语法

参数

  • x — 数字的字符串表示。 字符串

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 \N

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt8OrNull('0xc0fe');
备注

如果输入值无法在 UInt8 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 8 位无符号整数值,如果成功,则返回 NULLUInt8 / NULL
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt8OrDefault

toUInt8,此函数将输入值转换为类型 UInt8 的值,但在发生错误时返回默认值。 如果未传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。 表达式 / 字符串
  • default(可选) — 如果解析为类型 UInt8 不成功,则返回的默认值。 UInt8

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

返回默认值的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt8OrDefault('0xc0fe', CAST('0', 'UInt8'));
备注

如果输入值无法在 UInt8 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 8 位无符号整数值,如果成功,则返回默认值(如果传递),否则返回 0(如果未传递)。 UInt8
备注
  • 该函数使用 向零舍入,意味着它会截断数字的小数位。
  • 默认值类型应与转换类型相同。

示例

查询:

结果:

另见

toUInt16

将输入值转换为类型 UInt16 的值。如果发生错误,则会抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。 表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

不支持的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt16('0xc0fe');
备注

如果输入值无法在 UInt16 的范围内表示,则结果会溢出或下溢。 这不被视为错误。 例如: SELECT toUInt16(65536) == 0;

返回值

  • 16 位无符号整数值。 UInt16
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt16OrZero

toUInt16,此函数将输入值转换为类型 UInt16 的值,但在发生错误时返回 0

语法

参数

  • x — 数字的字符串表示。 字符串

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 0):

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt16OrZero('0xc0fe');
备注

如果输入值无法在 UInt16 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 16 位无符号整数值,如果成功,则返回 0UInt16
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt16OrNull

toUInt16,此函数将输入值转换为类型 UInt16 的值,但在发生错误时返回 NULL

语法

参数

  • x — 数字的字符串表示。 字符串

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 \N

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt16OrNull('0xc0fe');
备注

如果输入值无法在 UInt16 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 16 位无符号整数值,如果成功,则返回 NULLUInt16 / NULL
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt16OrDefault

toUInt16,此函数将输入值转换为类型 UInt16 的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。 表达式 / 字符串
  • default(可选) — 如果解析为类型 UInt16 不成功,则返回的默认值。 UInt16

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

返回默认值的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt16OrDefault('0xc0fe', CAST('0', 'UInt16'));
备注

如果输入值无法在 UInt16 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 16 位无符号整数值,如果成功,则返回默认值(如果传递),否则返回 0(如果未传递)。 UInt16
备注
  • 该函数使用 向零舍入,意味着它会截断数字的小数位。
  • 默认值类型应与转换类型相同。

示例

查询:

结果:

另见

toUInt32

将输入值转换为类型 UInt32 的值。如果发生错误,则会抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。 表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

不支持的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt32('0xc0fe');
备注

如果输入值无法在 UInt32 的范围内表示,则结果会溢出或下溢。 这不被视为错误。 例如: SELECT toUInt32(4294967296) == 0;

返回值

  • 32 位无符号整数值。 UInt32
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt32OrZero

toUInt32,此函数将输入值转换为类型 UInt32 的值,但在发生错误时返回 0

语法

参数

  • x — 数字的字符串表示。 字符串

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 0):

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt32OrZero('0xc0fe');
备注

如果输入值无法在 UInt32 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 32 位无符号整数值,如果成功,则返回 0UInt32
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt32OrNull

toUInt32,此函数将输入值转换为类型 UInt32 的值,但在发生错误时返回 NULL

语法

参数

  • x — 数字的字符串表示。 字符串

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 \N

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt32OrNull('0xc0fe');
备注

如果输入值无法在 UInt32 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 32 位无符号整数值,如果成功,则返回 NULLUInt32 / NULL
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt32OrDefault

toUInt32,此函数将输入值转换为类型 UInt32 的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。 表达式 / 字符串
  • default(可选) — 如果解析为类型 UInt32 不成功,则返回的默认值。 UInt32

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

返回默认值的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt32OrDefault('0xc0fe', CAST('0', 'UInt32'));
备注

如果输入值无法在 UInt32 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 32 位无符号整数值,如果成功,则返回默认值(如果传递),否则返回 0(如果未传递)。 UInt32
备注
  • 该函数使用 向零舍入,意味着它会截断数字的小数位。
  • 默认值类型应与转换类型相同。

示例

查询:

结果:

另见

toUInt64

将输入值转换为类型 UInt64 的值。如果发生错误,则会抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。 表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

不支持的类型:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt64('0xc0fe');
备注

如果输入值无法在 UInt64 的范围内表示,则结果会溢出或下溢。 这不被视为错误。 例如: SELECT toUInt64(18446744073709551616) == 0;

返回值

  • 64 位无符号整数值。 UInt64
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt64OrZero

toUInt64,此函数将输入值转换为类型 UInt64 的值,但在发生错误时返回 0

语法

参数

  • x — 数字的字符串表示。 字符串

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 0):

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt64OrZero('0xc0fe');
备注

如果输入值无法在 UInt64 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 64 位无符号整数值,如果成功,则返回 0UInt64
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt64OrNull

toUInt64,此函数将输入值转换为类型 UInt64 的值,但在发生错误时返回 NULL

语法

参数

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 \N

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt64OrNull('0xc0fe');
备注

如果输入值无法在 UInt64 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 64 位无符号整数值,如果成功,则返回 NULLUInt64 / NULL
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt64OrDefault

toUInt64,此函数将输入值转换为类型 UInt64 的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。 表达式 / 字符串
  • defauult(可选) — 如果解析为类型 UInt64 不成功,则返回的默认值。 UInt64

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

返回默认值的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt64OrDefault('0xc0fe', CAST('0', 'UInt64'));
备注

如果输入值无法在 UInt64 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 64 位无符号整数值,如果成功,则返回默认值(如果传递),否则返回 0(如果未传递)。 UInt64
备注
  • 该函数使用 向零舍入,意味着它会截断数字的小数位。
  • 默认值类型应与转换类型相同。

示例

查询:

结果:

另见

toUInt128

将输入值转换为类型 UInt128 的值。如果发生错误,则会抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。 表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

不支持的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt128('0xc0fe');
备注

如果输入值无法在 UInt128 的范围内表示,则结果会溢出或下溢。 这不被视为错误。

返回值

  • 128 位无符号整数值。 UInt128
备注

该函数使用 向零舍入,意味着它会截断数字的小数位。

示例

查询:

结果:

另见

toUInt128OrZero

toUInt128 类似,该函数将输入值转换为 UInt128 类型的值,但在发生错误时返回 0

语法

参数

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 0):

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt128OrZero('0xc0fe');
备注

如果输入值无法在 UInt128 的范围内表示,则结果将发生溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,则返回 128 位无符号整数值,否则返回 0UInt128
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

参见

toUInt128OrNull

toUInt128 类似,该函数将输入值转换为 UInt128 类型的值,但在发生错误时返回 NULL

语法

参数

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 \N):

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt128OrNull('0xc0fe');
备注

如果输入值无法在 UInt128 的范围内表示,则结果将发生溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,则返回 128 位无符号整数值,否则返回 NULLUInt128 / NULL
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

参见

toUInt128OrDefault

toUInt128 类似,该函数将输入值转换为 UInt128 类型的值,但在发生错误时返回默认值。 如果未传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式 / 字符串
  • default(可选)— 如果解析到 UInt128 类型不成功,则返回的默认值。UInt128

支持的参数:

  • (U)Int8/16/32/64/128/256。
  • Float32/64。
  • (U)Int8/16/32/128/256 的字符串表示。

返回默认值的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt128OrDefault('0xc0fe', CAST('0', 'UInt128'));
备注

如果输入值无法在 UInt128 的范围内表示,则结果将发生溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,则返回 128 位无符号整数值,否则如果传递了,则返回默认值,如果没有,则返回 0UInt128
备注
  • 该函数使用 向零舍入,这意味着它截断数字的小数位。
  • 默认值类型应与转换类型相同。

示例

查询:

结果:

参见

toUInt256

将输入值转换为 UInt256 类型的值。在发生错误时抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值或字符串表示。
  • Float32/64 类型的值。

不支持的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt256('0xc0fe');
备注

如果输入值无法在 UInt256 的范围内表示,则结果发生溢出或下溢。 这不被视为错误。

返回值

  • 256 位无符号整数值。Int256
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

参见

toUInt256OrZero

toUInt256 类似,该函数将输入值转换为 UInt256 类型的值,但在发生错误时返回 0

语法

参数

  • x — 数字的字符串表示。字符串

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 0):

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt256OrZero('0xc0fe');
备注

如果输入值无法在 UInt256 的范围内表示,则结果将发生溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,则返回 256 位无符号整数值,否则返回 0UInt256
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

参见

toUInt256OrNull

toUInt256 类似,该函数将输入值转换为 UInt256 类型的值,但在发生错误时返回 NULL

语法

参数

  • x — 数字的字符串表示。字符串

支持的参数:

  • (U)Int8/16/32/128/256 的字符串表示。

不支持的参数(返回 \N):

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt256OrNull('0xc0fe');
备注

如果输入值无法在 UInt256 的范围内表示,则结果将发生溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,则返回 256 位无符号整数值,否则返回 NULLUInt256 / NULL
备注

该函数使用 向零舍入,这意味着它截断数字的小数位。

示例

查询:

结果:

参见

toUInt256OrDefault

toUInt256 类似,该函数将输入值转换为 UInt256 类型的值,但在发生错误时返回默认值。 如果未传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式 / 字符串
  • default(可选)— 如果解析到 UInt256 类型不成功,则返回的默认值。UInt256

支持的参数:

  • (U)Int8/16/32/64/128/256。
  • Float32/64。
  • (U)Int8/16/32/128/256 的字符串表示。

返回默认值的参数:

  • Float32/64 值的字符串表示,包括 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toUInt256OrDefault('0xc0fe', CAST('0', 'UInt256'));
备注

如果输入值无法在 UInt256 的范围内表示,则结果将发生溢出或下溢。 这不被视为错误。

返回值

  • 如果成功,则返回 256 位无符号整数值,否则如果传递了,则返回默认值,如果没有,则返回 0UInt256
备注
  • 该函数使用 向零舍入,这意味着它截断数字的小数位。
  • 默认值类型应与转换类型相同。

示例

查询:

结果:

参见

toFloat32

将输入值转换为 Float32 类型的值。在发生错误时抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值。
  • (U)Int8/16/32/128/256 的字符串表示。
  • Float32/64 类型的值,包括 NaNInf
  • Float32/64 的字符串表示,包括 NaNInf(不区分大小写)。

不支持的参数:

  • 二进制和十六进制值的字符串表示,例如 SELECT toFloat32('0xc0fe');

返回值

示例

查询:

结果:

参见

toFloat32OrZero

toFloat32 类似,该函数将输入值转换为 Float32 类型的值,但在发生错误时返回 0

语法

参数

  • x — 数字的字符串表示。字符串

支持的参数:

  • (U)Int8/16/32/128/256,Float32/64 的字符串表示。

不支持的参数(返回 0):

  • 二进制和十六进制值的字符串表示,例如 SELECT toFloat32OrZero('0xc0fe');

返回值

  • 如果成功,则返回 32 位浮点值,否则返回 0Float32

示例

查询:

结果:

参见

toFloat32OrNull

toFloat32 类似,该函数将输入值转换为 Float32 类型的值,但在发生错误时返回 NULL

语法

参数

  • x — 数字的字符串表示。字符串

支持的参数:

  • (U)Int8/16/32/128/256,Float32/64 的字符串表示。

不支持的参数(返回 \N):

  • 二进制和十六进制值的字符串表示,例如 SELECT toFloat32OrNull('0xc0fe');

返回值

  • 如果成功,则返回 32 位浮点值,否则返回 \NFloat32

示例

查询:

结果:

参见

toFloat32OrDefault

toFloat32 类似,该函数将输入值转换为 Float32 类型的值,但在发生错误时返回默认值。 如果未传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式 / 字符串
  • default(可选)— 如果解析到 Float32 类型不成功,则返回的默认值。Float32

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值。
  • (U)Int8/16/32/128/256 的字符串表示。
  • Float32/64 类型的值,包括 NaNInf
  • Float32/64 的字符串表示,包括 NaNInf(不区分大小写)。

返回默认值的参数:

  • 二进制和十六进制值的字符串表示,例如 SELECT toFloat32OrDefault('0xc0fe', CAST('0', 'Float32'));

返回值

  • 如果成功,则返回 32 位浮点值,否则如果传递了,则返回默认值,如果没有,则返回 0Float32

示例

查询:

结果:

参见

toFloat64

将输入值转换为 Float64 类型的值。在发生错误时抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值。
  • (U)Int8/16/32/128/256 的字符串表示。
  • Float32/64 类型的值,包括 NaNInf
  • Float32/64 的字符串表示,包括 NaNInf(不区分大小写)。

不支持的参数:

  • 二进制和十六进制值的字符串表示,例如 SELECT toFloat64('0xc0fe');

返回值

示例

查询:

结果:

参见

toFloat64OrZero

toFloat64 类似,该函数将输入值转换为 Float64 类型的值,但在发生错误时返回 0

语法

参数

  • x — 数字的字符串表示。字符串

支持的参数:

  • (U)Int8/16/32/128/256,Float32/64 的字符串表示。

不支持的参数(返回 0):

  • 二进制和十六进制值的字符串表示,例如 SELECT toFloat64OrZero('0xc0fe');

返回值

  • 如果成功,则返回 64 位浮点值,否则返回 0Float64

示例

查询:

结果:

参见

toFloat64OrNull

toFloat64 类似,该函数将输入值转换为 Float64 类型的值,但在发生错误时返回 NULL

语法

参数

  • x — 数字的字符串表示。字符串

支持的参数:

  • (U)Int8/16/32/128/256,Float32/64 的字符串表示。

不支持的参数(返回 \N):

  • 二进制和十六进制值的字符串表示,例如 SELECT toFloat64OrNull('0xc0fe');

返回值

  • 如果成功,则返回 64 位浮点值,否则返回 \NFloat64

示例

查询:

结果:

参见

toFloat64OrDefault

toFloat64 类似,该函数将输入值转换为 Float64 类型的值,但在发生错误时返回默认值。 如果未传递 default 值,则在发生错误时返回 0

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式 / 字符串
  • default(可选)— 如果解析到 Float64 类型不成功,则返回的默认值。Float64

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值。
  • (U)Int8/16/32/128/256 的字符串表示。
  • Float32/64 类型的值,包括 NaNInf
  • Float32/64 的字符串表示,包括 NaNInf(不区分大小写)。

返回默认值的参数:

  • 二进制和十六进制值的字符串表示,例如 SELECT toFloat64OrDefault('0xc0fe', CAST('0', 'Float64'));

返回值

  • 如果成功,则返回 64 位浮点值,否则如果传递了,则返回默认值,如果没有,则返回 0Float64

示例

查询:

结果:

参见

toBFloat16

将输入值转换为 BFloat16 类型的值。 在发生错误时抛出异常。

语法

参数

  • expr — 返回数字或数字字符串表示的表达式。表达式

支持的参数:

  • (U)Int8/16/32/64/128/256 类型的值。
  • (U)Int8/16/32/128/256 的字符串表示。
  • Float32/64 类型的值,包括 NaNInf
  • Float32/64 的字符串表示,包括 NaNInf(不区分大小写)。

返回值

示例

参见

toBFloat16OrZero

将字符串输入值转换为 BFloat16 类型的值。 如果字符串不表示浮点值,则函数返回零。

语法

参数

  • x — 数字的字符串表示。字符串

支持的参数:

  • 数值的字符串表示。

不支持的参数(返回 0):

  • 二进制和十六进制值的字符串表示。
  • 数值。

返回值

  • 16 位脑浮动值,否则 0BFloat16
备注

该函数在从字符串表示转换时可能会导致精度的无声损失。

示例

参见

toBFloat16OrNull

将字符串输入值转换为 BFloat16 类型的值, 但如果字符串不表示浮点值,则函数返回 NULL

语法

参数

  • x — 数字的字符串表示。字符串

支持的参数:

  • 数值的字符串表示。

不支持的参数(返回 NULL):

  • 二进制和十六进制值的字符串表示。
  • 数值。

返回值

  • 16 位脑浮动值,否则 NULL (\N)。BFloat16
备注

该函数在从字符串表示转换时可能会导致精度的无声损失。

示例

参见

toDate

将参数转换为 日期 数据类型。

如果参数为 DateTimeDateTime64,则截断并保留 DateTime 的日期部分:

如果参数为 字符串,则解析为 日期DateTime。如果解析为 DateTime,则使用日期部分:

如果参数为数字并且看起来像 UNIX 时间戳(大于 65535),则将其解释为 DateTime,然后在当前时区下截断为 日期。时区参数可以作为函数的第二个参数指定。根据时区截断为 日期

上面的示例演示如何将同一个 UNIX 时间戳在不同的时区中解释为不同的日期。

如果参数为数字并且小于 65536,则将其解释为自 1970-01-01(第一个 UNIX 日)以来的天数,并转换为 日期。它对应于 日期 数据类型的内部数字表示。示例:

此转换不依赖于时区。

如果参数不适合日期类型的范围,则会导致实施定义的行为,可能饱和到最大支持日期或溢出:

函数 toDate 也可以以备用形式书写:

toDateOrZero

toDate 相同,但如果接收到无效参数,则返回 日期 的下界。仅支持 字符串 参数。

示例

查询:

结果:

toDateOrNull

toDate 相同,但如果接收到无效参数,则返回 NULL。仅支持 字符串 参数。

示例

查询:

结果:

toDateOrDefault

toDate 类似,但如果不成功,则返回默认值,该值可以是第二个参数(如果指定),否则为 日期 的下界。

语法

示例

查询:

结果:

toDateTime

将输入值转换为 DateTime

语法

参数

备注

如果 expr 是数字,则将其解释为从 Unix 纪元开始的秒数(即 Unix 时间戳)。 如果 expr字符串,则可以将其解释为 UNIX 时间戳或日期/时间的字符串表示。 因此,短数字字符串的解析(最多 4 位)被明确禁用以避免模糊,例如字符串 '1999' 可能既是年份(日期/日期时间的不完整字符串表示)或 Unix 时间戳,较长的数字字符串是允许的。

返回值

示例

查询:

结果:

toDateTimeOrZero

toDateTime 相同,但如果接收到无效参数,则返回 DateTime 的下界。仅支持 字符串 参数。

示例

查询:

结果:

toDateTimeOrNull

toDateTime 相同,但如果接收到无效参数,则返回 NULL。仅支持 字符串 参数。

示例

查询:

结果:

toDateTimeOrDefault

toDateTime 类似,但如果不成功,则返回默认值,该值可以是第三个参数(如果指定),否则为 DateTime 的下界。

语法

示例

查询:

结果:

toDate32

将参数转换为 Date32 数据类型。如果值超出范围,则 toDate32 返回 Date32 支持的边界值。如果参数具有 日期 类型,则会考虑其边界。

语法

参数

返回值

  • 日历日期。类型 Date32

示例

  1. 值在范围内:
  1. 值超出范围:
  1. 日期 参数:

toDate32OrZero

toDate32 相同,但如果接收到无效参数,则返回 Date32 的最小值。

示例

查询:

结果:

toDate32OrNull

toDate32 相同,但如果接收到无效参数,则返回 NULL

示例

查询:

结果:

toDate32OrDefault

将参数转换为 Date32 数据类型。如果值超出范围,则 toDate32OrDefault 返回 Date32 支持的下边界值。如果参数具有 日期 类型,则会考虑其边界。如果接收到无效参数,则返回默认值。

示例

查询:

结果:

toDateTime64

将输入值转换为 DateTime64 类型的值。

语法

参数

  • expr — 值。字符串UInt32浮点DateTime
  • scale - 滴答大小(精度):10-精度 秒。有效范围:[ 0 : 9 ]。
  • timezone(可选)— 指定的 datetime64 对象的时区。

返回值

  • 包含亚秒精度的日历日期和时间。DateTime64

示例

  1. 值在范围内:
  1. 作为带精度的十进制:

在没有小数点的情况下,值仍然被视为以秒为单位的 Unix 时间戳:

  1. 带有 timezone

toDateTime64OrZero

toDateTime64 相似,该函数将输入值转换为 DateTime64 类型的值,但如果接收到无效参数,则返回 DateTime64 的最小值。

语法

参数

  • expr — 值。字符串UInt32浮点DateTime
  • scale - 滴答大小(精度):10-精度 秒。有效范围:[ 0 : 9 ]。
  • timezone(可选)— 指定的 DateTime64 对象的时区。

返回值

  • 包含亚秒精度的日历日期和时间,最小值为 DateTime641970-01-01 01:00:00.000DateTime64

示例

查询:

结果:

参见

toDateTime64OrNull

toDateTime64 相似,此函数将输入值转换为 DateTime64 类型的值,但如果收到无效参数,则返回 NULL

语法

参数

  • expr — 值。 StringUInt32FloatDateTime
  • scale - Tick 大小(精度):10-precision 秒。有效范围: [ 0 : 9 ]。
  • timezone(可选) - 指定的 DateTime64 对象的时区。

返回值

  • 一个带有毫秒精度的日历日期和一天中的时间,否则为 NULLDateTime64/NULL

示例

查询:

结果:

参见

toDateTime64OrDefault

toDateTime64 相似,此函数将输入值转换为 DateTime64 类型的值, 但如果收到无效参数,则返回 DateTime64 的默认值 或提供的默认值。

语法

参数

  • expr — 值。 StringUInt32FloatDateTime
  • scale - Tick 大小(精度):10-precision 秒。有效范围: [ 0 : 9 ]。
  • timezone(可选) - 指定的 DateTime64 对象的时区。
  • default(可选) - 如果收到无效参数,则返回的默认值。 DateTime64

返回值

  • 一个带有毫秒精度的日历日期和一天中的时间,否则为 DateTime64 的最小值或提供的 default 值(如果提供)。 DateTime64

示例

查询:

结果:

参见

toDecimal32

将输入值转换为类型为 Decimal(9, S) 的值,精度为 S。在发生错误时抛出异常。

语法

参数

  • expr — 返回数值或数字字符串表示的表达式。 表达式
  • S — 介于 0 和 9 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的值或字符串表示。
  • 类型 Float32/64 的值或字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf(不区分大小写)。
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal32('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal32 的边界,可能会发生溢出:( -1 * 10^(9 - S), 1 * 10^(9 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致异常。

危险

在处理 Float32/Float64 输入时,转换将丢弃多余的数字,并可能以意想不到的方式进行操作,因为操作是使用浮点指令执行的。 例如: toDecimal32(1.15, 2) 等于 1.14 因为 1.15 * 100 在浮点下是 114.99。 您可以使用字符串输入,以便操作使用底层整数类型: toDecimal32('1.15', 2) = 1.15

返回值

示例

查询:

结果:

参见

toDecimal32OrZero

toDecimal32 相似,此函数将输入值转换为 Decimal(9, S) 类型的值,但在发生错误时返回 0

语法

参数

  • expr — 数字的字符串表示。 String
  • S — 介于 0 和 9 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的字符串表示。
  • 类型 Float32/64 的字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal32OrZero('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal32 的边界,可能会发生溢出:( -1 * 10^(9 - S), 1 * 10^(9 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致错误。

返回值

  • 如果成功,则为类型 Decimal(9, S) 的值,否则为带有 S 小数位的 0Decimal32(S)

示例

查询:

结果:

参见

toDecimal32OrNull

toDecimal32 相似,此函数将输入值转换为类型为 Nullable(Decimal(9, S)) 的值,但在发生错误时返回 0

语法

参数

  • expr — 数字的字符串表示。 String
  • S — 介于 0 和 9 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的字符串表示。
  • 类型 Float32/64 的字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal32OrNull('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal32 的边界,可能会发生溢出:( -1 * 10^(9 - S), 1 * 10^(9 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致错误。

返回值

  • 如果成功,则为类型 Nullable(Decimal(9, S)) 的值,否则为同类型的值 NULLDecimal32(S)

示例

查询:

结果:

参见

toDecimal32OrDefault

toDecimal32 相似,此函数将输入值转换为 Decimal(9, S) 类型的值,但在发生错误时返回默认值。

语法

参数

  • expr — 数字的字符串表示。 String
  • S — 介于 0 和 9 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8
  • default(可选) — 解析为类型 Decimal32(S) 失败时返回的默认值。 Decimal32(S)

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的字符串表示。
  • 类型 Float32/64 的字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal32OrDefault('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal32 的边界,可能会发生溢出:( -1 * 10^(9 - S), 1 * 10^(9 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致错误。

危险

在处理 Float32/Float64 输入时,转换将丢弃多余的数字,并可能以意想不到的方式进行操作,因为操作是使用浮点指令执行的。 例如: toDecimal32OrDefault(1.15, 2) 等于 1.14,因为 1.15 * 100 在浮点下是 114.99。 您可以使用字符串输入,以便操作使用底层整数类型: toDecimal32OrDefault('1.15', 2) = 1.15

返回值

  • 如果成功,则为类型 Decimal(9, S) 的值,否则返回传入的默认值(如果有)或 0(如果没有)。 Decimal32(S)

示例

查询:

结果:

参见

toDecimal64

将输入值转换为类型为 Decimal(18, S) 的值,精度为 S。在发生错误时抛出异常。

语法

参数

  • expr — 返回数值或数字字符串表示的表达式。 表达式
  • S — 介于 0 和 18 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的值或字符串表示。
  • 类型 Float32/64 的值或字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf(不区分大小写)。
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal64('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal64 的边界,可能会发生溢出:( -1 * 10^(18 - S), 1 * 10^(18 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致异常。

危险

在处理 Float32/Float64 输入时,转换将丢弃多余的数字,并可能以意想不到的方式进行操作,因为操作是使用浮点指令执行的。 例如: toDecimal64(1.15, 2) 等于 1.14,因为 1.15 * 100 在浮点下是 114.99。 您可以使用字符串输入,以便操作使用底层整数类型: toDecimal64('1.15', 2) = 1.15

返回值

示例

查询:

结果:

参见

toDecimal64OrZero

toDecimal64 相似,此函数将输入值转换为类型为 Decimal(18, S) 的值,但在发生错误时返回 0

语法

参数

  • expr — 数字的字符串表示。 String
  • S — 介于 0 和 18 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的字符串表示。
  • 类型 Float32/64 的字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal64OrZero('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal64 的边界,可能会发生溢出:( -1 * 10^(18 - S), 1 * 10^(18 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致错误。

返回值

  • 如果成功,则为类型 Decimal(18, S) 的值,否则为带有 S 小数位的 0Decimal64(S)

示例

查询:

结果:

参见

toDecimal64OrNull

toDecimal64 相似,此函数将输入值转换为类型为 Nullable(Decimal(18, S)) 的值,但在发生错误时返回 0

语法

参数

  • expr — 数字的字符串表示。 String
  • S — 介于 0 和 18 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的字符串表示。
  • 类型 Float32/64 的字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal64OrNull('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal64 的边界,可能会发生溢出:( -1 * 10^(18 - S), 1 * 10^(18 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致错误。

返回值

  • 如果成功,则为类型 Nullable(Decimal(18, S)) 的值,否则为同类型的值 NULLDecimal64(S)

示例

查询:

结果:

参见

toDecimal64OrDefault

toDecimal64 相似,此函数将输入值转换为类型为 Decimal(18, S) 的值,但在发生错误时返回默认值。

语法

参数

  • expr — 数字的字符串表示。 String
  • S — 介于 0 和 18 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8
  • default(可选) — 解析为类型 Decimal64(S) 失败时返回的默认值。 Decimal64(S)

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的字符串表示。
  • 类型 Float32/64 的字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal64OrDefault('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal64 的边界,可能会发生溢出:( -1 * 10^(18 - S), 1 * 10^(18 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致错误。

危险

在处理 Float32/Float64 输入时,转换将丢弃多余的数字,并可能以意想不到的方式进行操作,因为操作是使用浮点指令执行的。 例如: toDecimal64OrDefault(1.15, 2) 等于 1.14,因为 1.15 * 100 在浮点下是 114.99。 您可以使用字符串输入,以便操作使用底层整数类型: toDecimal64OrDefault('1.15', 2) = 1.15

返回值

  • 如果成功,则为类型 Decimal(18, S) 的值,否则返回传入的默认值(如果有)或 0(如果没有)。 Decimal64(S)

示例

查询:

结果:

参见

toDecimal128

将输入值转换为类型为 Decimal(38, S) 的值,精度为 S。在发生错误时抛出异常。

语法

参数

  • expr — 返回数值或数字字符串表示的表达式。 表达式
  • S — 介于 0 和 38 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的值或字符串表示。
  • 类型 Float32/64 的值或字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf(不区分大小写)。
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal128('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal128 的边界,可能会发生溢出:( -1 * 10^(38 - S), 1 * 10^(38 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致异常。

危险

在处理 Float32/Float64 输入时,转换将丢弃多余的数字,并可能以意想不到的方式进行操作,因为操作是使用浮点指令执行的。 例如: toDecimal128(1.15, 2) 等于 1.14,因为 1.15 * 100 在浮点下是 114.99。 您可以使用字符串输入,以便操作使用底层整数类型: toDecimal128('1.15', 2) = 1.15

返回值

示例

查询:

结果:

参见

toDecimal128OrZero

toDecimal128 相似,此函数将输入值转换为类型为 Decimal(38, S) 的值,但在发生错误时返回 0

语法

参数

  • expr — 数字的字符串表示。 String
  • S — 介于 0 和 38 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的字符串表示。
  • 类型 Float32/64 的字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal128OrZero('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal128 的边界,可能会发生溢出:( -1 * 10^(38 - S), 1 * 10^(38 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致错误。

返回值

  • 如果成功,则为类型 Decimal(38, S) 的值,否则为带有 S 小数位的 0Decimal128(S)

示例

查询:

结果:

参见

toDecimal128OrNull

toDecimal128 相似,此函数将输入值转换为类型为 Nullable(Decimal(38, S)) 的值,但在发生错误时返回 0

语法

参数

  • expr — 数字的字符串表示。 String
  • S — 介于 0 和 38 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的字符串表示。
  • 类型 Float32/64 的字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal128OrNull('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal128 的边界,可能会发生溢出:( -1 * 10^(38 - S), 1 * 10^(38 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致错误。

返回值

  • 如果成功,则为类型 Nullable(Decimal(38, S)) 的值,否则为同类型的值 NULLDecimal128(S)

示例

查询:

结果:

参见

toDecimal128OrDefault

toDecimal128 相似,此函数将输入值转换为类型为 Decimal(38, S) 的值,但在发生错误时返回默认值。

语法

参数

  • expr — 数字的字符串表示。 String
  • S — 介于 0 和 38 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8
  • default(可选) — 解析为类型 Decimal128(S) 失败时返回的默认值。 Decimal128(S)

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的字符串表示。
  • 类型 Float32/64 的字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal128OrDefault('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal128 的边界,可能会发生溢出:( -1 * 10^(38 - S), 1 * 10^(38 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致错误。

危险

在处理 Float32/Float64 输入时,转换将丢弃多余的数字,并可能以意想不到的方式进行操作,因为操作是使用浮点指令执行的。 例如: toDecimal128OrDefault(1.15, 2) 等于 1.14,因为 1.15 * 100 在浮点下是 114.99。 您可以使用字符串输入,以便操作使用底层整数类型: toDecimal128OrDefault('1.15', 2) = 1.15

返回值

  • 如果成功,则为类型 Decimal(38, S) 的值,否则返回传入的默认值(如果有)或 0(如果没有)。 Decimal128(S)

示例

查询:

结果:

参见

toDecimal256

将输入值转换为类型为 Decimal(76, S) 的值,精度为 S。在发生错误时抛出异常。

语法

参数

  • expr — 返回数值或数字字符串表示的表达式。 表达式
  • S — 介于 0 和 76 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的值或字符串表示。
  • 类型 Float32/64 的值或字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf(不区分大小写)。
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal256('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal256 的边界,可能会发生溢出:( -1 * 10^(76 - S), 1 * 10^(76 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致异常。

危险

在处理 Float32/Float64 输入时,转换将丢弃多余的数字,并可能以意想不到的方式进行操作,因为操作是使用浮点指令执行的。 例如: toDecimal256(1.15, 2) 等于 1.14,因为 1.15 * 100 在浮点下是 114.99。 您可以使用字符串输入,以便操作使用底层整数类型: toDecimal256('1.15', 2) = 1.15

返回值

示例

查询:

结果:

参见

toDecimal256OrZero

toDecimal256 相似,此函数将输入值转换为类型为 Decimal(76, S) 的值,但在发生错误时返回 0

语法

参数

  • expr — 数字的字符串表示。 String
  • S — 介于 0 和 76 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的字符串表示。
  • 类型 Float32/64 的字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal256OrZero('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal256 的边界,可能会发生溢出:( -1 * 10^(76 - S), 1 * 10^(76 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致错误。

返回值

  • 如果成功,则为类型 Decimal(76, S) 的值,否则为带有 S 小数位的 0Decimal256(S)

示例

查询:

结果:

参见

toDecimal256OrNull

toDecimal256 相似,此函数将输入值转换为类型为 Nullable(Decimal(76, S)) 的值,但在发生错误时返回 0

语法

参数

  • expr — 数字的字符串表示。 String
  • S — 介于 0 和 76 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的字符串表示。
  • 类型 Float32/64 的字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal256OrNull('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal256 的边界,可能会发生溢出:( -1 * 10^(76 - S), 1 * 10^(76 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致错误。

返回值

  • 如果成功,则为类型 Nullable(Decimal(76, S)) 的值,否则为同类型的值 NULLDecimal256(S)

示例

查询:

结果:

参见

toDecimal256OrDefault

toDecimal256 相似,此函数将输入值转换为类型为 Decimal(76, S) 的值,但在发生错误时返回默认值。

语法

参数

  • expr — 数字的字符串表示。 String
  • S — 介于 0 和 76 之间的规模参数,指定数字的小数部分可以有多少位数字。 UInt8
  • default(可选) — 解析为类型 Decimal256(S) 失败时返回的默认值。 Decimal256(S)

支持的参数:

  • 类型 (U)Int8/16/32/64/128/256 的字符串表示。
  • 类型 Float32/64 的字符串表示。

不支持的参数:

  • 类型 Float32/64 的值或字符串表示为 NaNInf
  • 二进制和十六进制值的字符串表示,例如 SELECT toDecimal256OrDefault('0xc0fe', 1);
备注

如果 expr 的值超出 Decimal256 的边界,可能会发生溢出:( -1 * 10^(76 - S), 1 * 10^(76 - S) )。 小数部分中的多余数字将被丢弃(不进行四舍五入)。 整数部分中的多余数字将导致错误。

危险

在处理 Float32/Float64 输入时,转换将丢弃多余的数字,并可能以意想不到的方式进行操作,因为操作是使用浮点指令执行的。 例如: toDecimal256OrDefault(1.15, 2) 等于 1.14,因为 1.15 * 100 在浮点下是 114.99。 您可以使用字符串输入,以便操作使用底层整数类型: toDecimal256OrDefault('1.15', 2) = 1.15

返回值

  • 如果成功,则为类型 Decimal(76, S) 的值,否则返回传入的默认值(如果有)或 0(如果没有)。 Decimal256(S)

示例

查询:

结果:

参见

toString

用于在数字、字符串(但不是定长字符串)、日期和日期时间之间转换的函数。 所有这些函数接受一个参数。

在转换到字符串或从字符串转换时,值使用与TabSeparated格式(以及几乎所有其他文本格式)相同的规则进行格式化或解析。如果字符串无法被解析,将抛出异常并取消请求。

在将日期转换为数字或反之时,日期对应于自Unix纪元开始的天数。 在将日期与时间转换为数字或反之时,带时间的日期对应于自Unix纪元开始的秒数。

toDate/toDateTime函数的日期和带时间的日期格式定义如下:

作为例外,如果从UInt32、Int32、UInt64或Int64数值类型转换为Date,并且数字大于或等于65536,则该数字被解释为Unix时间戳(而不是天数),并被舍入到日期。这允许支持常见的写法toDate(unix_timestamp),否则将会出现错误,需要写作更繁琐的toDate(toDateTime(unix_timestamp))

日期和带时间的日期之间的转换按自然的方式进行:通过添加空时间或丢弃时间。

数值类型之间的转换使用与C++中不同数值类型之间的赋值相同的规则。

此外,DateTime参数的toString函数可以接受第二个String参数,包含时区的名称。示例: Asia/Yekaterinburg 在这种情况下,时间根据指定的时区进行格式化。

示例

查询:

结果:

另请参见toUnixTimestamp函数。

toFixedString

String类型参数转换为FixedString(N)类型(固定长度N的字符串)。 如果字符串的字节数少于N,则在右侧填充空字节。如果字符串的字节数多于N,则会抛出异常。

语法

参数

  • s — 要转换为固定字符串的字符串。String
  • N — 长度N。UInt8

返回值

示例

查询:

结果:

toStringCutToZero

接受一个String或FixedString参数。返回内容在找到的第一个空字节位置被截断的字符串。

语法

示例

查询:

结果:

查询:

结果:

toDecimalString

将数值转换为具有用户指定的小数位数的字符串。

语法

参数

返回值

  • 输入值表示为具有指定小数位数(scale)的String。 如果请求的位数小于原始数字的位数,则数字会根据常规算术向上或向下四舍五入。

示例

查询:

结果:

reinterpretAsUInt8

通过将输入值视为UInt8类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为UInt8的值xUInt8

示例

查询:

结果:

reinterpretAsUInt16

通过将输入值视为UInt16类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为UInt16的值xUInt16

示例

查询:

结果:

reinterpretAsUInt32

通过将输入值视为UInt32类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为UInt32的值xUInt32

示例

查询:

结果:

reinterpretAsUInt64

通过将输入值视为UInt64类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为UInt64的值xUInt64

示例

查询:

结果:

reinterpretAsUInt128

通过将输入值视为UInt128类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为UInt128的值xUInt128

示例

查询:

结果:

reinterpretAsUInt256

通过将输入值视为UInt256类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为UInt256的值xUInt256

示例

查询:

结果:

reinterpretAsInt8

通过将输入值视为Int8类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为Int8的值xInt8

示例

查询:

结果:

reinterpretAsInt16

通过将输入值视为Int16类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为Int16的值xInt16

示例

查询:

结果:

reinterpretAsInt32

通过将输入值视为Int32类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为Int32的值xInt32

示例

查询:

结果:

reinterpretAsInt64

通过将输入值视为Int64类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为Int64的值xInt64

示例

查询:

结果:

reinterpretAsInt128

通过将输入值视为Int128类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为Int128的值xInt128

示例

查询:

结果:

reinterpretAsInt256

通过将输入值视为Int256类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为Int256的值xInt256

示例

查询:

结果:

reinterpretAsFloat32

通过将输入值视为Float32类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为Float32的值xFloat32

示例

查询:

结果:

reinterpretAsFloat64

通过将输入值视为Float64类型的值执行字节重解释。与CAST不同,该函数不尝试保留原始值 - 如果目标类型无法表示输入类型,则输出无意义。

语法

参数

返回值

  • 将重解释为Float64的值xFloat64

示例

查询:

结果:

reinterpretAsDate

接受字符串、固定字符串或数值,并以主机顺序(小端序)解释字节。返回解释的数字作为自Unix纪元开始的天数。

语法

参数

返回值

实现细节

备注

如果提供的字符串不够长,该函数的工作方式如下:如果字符串的长度不够,则补充必要数量的空字节。如果字符串过长,将忽略多余的字节。

示例

查询:

结果:

reinterpretAsDateTime

这些函数接受一个字符串,并将放置在字符串开头的字节解释为主机顺序(小端序)中的数字。返回解释为自Unix纪元开始的秒数的日期和时间。

语法

参数

返回值

实现细节

备注

如果提供的字符串不够长,该函数的工作方式如下:如果字符串的长度不够,则补充必要数量的空字节。如果字符串过长,将忽略多余的字节。

示例

查询:

结果:

reinterpretAsString

该函数接受一个数字、日期或带时间的日期,并返回一个字符串,包含在主机顺序(小端序)中表示相应值的字节。空字节从尾部删除。例如,UInt32类型值255是一个长为1字节的字符串。

语法

参数

返回值

  • 包含表示x的字节的字符串。String

示例

查询:

结果:

reinterpretAsFixedString

该函数接受一个数字、日期或带时间的日期,并返回一个FixedString,包含在主机顺序(小端序)中表示相应值的字节。空字节从尾部删除。例如,UInt32类型值255是一个长为1字节的FixedString。

语法

参数

返回值

  • 包含表示x的字节的固定字符串。FixedString

示例

查询:

结果:

reinterpretAsUUID

备注

除了这里列出的UUID函数外,还有专门的UUID函数文档

接受一个16字节字符串,通过将每个8字节的半部分解释为小端字节顺序返回一个UUID。如果字符串不够长,该函数的工作方式如下:如果字符串的长度不够,则补充必要数量的空字节到尾部。如果字符串超过16字节,尾部的多余字节将被忽略。

语法

参数

  • fixed_string — 大端字节字符串。FixedString

返回值

  • UUID类型的值。UUID

示例

字符串到UUID。

查询:

结果:

从字符串到UUID再到字符串。

查询:

结果:

reinterpret

使用x值中的相同源内存字节序列并将其重解释为目标类型。

语法

参数

  • x — 任何类型。
  • type — 目标类型。String

返回值

  • 目标类型的值。

示例

查询:

结果:

CAST

将输入值转换为指定的数据类型。与reinterpret函数不同,CAST尝试使用新数据类型表示相同的值。如果无法进行转换,则引发异常。 支持几种语法变体。

语法

参数

  • x — 要转换的值。可以是任何类型。
  • T — 目标数据类型的名称。String
  • t — 目标数据类型。

返回值

  • 转换后的值。
备注

如果输入值不适合目标类型的范围,则结果会溢出。例如,CAST(-1, 'UInt8')返回255

示例

查询:

结果:

查询:

结果:

转换为FixedString (N)仅适用于StringFixedString类型的参数。

Nullable的类型转换和反向转换是支持的。

示例

查询:

结果:

查询:

结果:

另见

accurateCast(x, T)

x转换为类型T

cast的区别在于,accurateCast不允许在转换时数值类型溢出,如果类型值x不符合类型T的范围。例如,accurateCast(-1, 'UInt8')会抛出异常。

示例

查询:

结果:

查询:

结果:

accurateCastOrNull(x, T)

将输入值x转换为指定的数据类型T。始终返回Nullable类型,如果转换后的值在目标类型中不可表示,则返回NULL

语法

参数

  • x — 输入值。
  • T — 返回的数据类型名称。

返回值

  • 转换为指定的数据类型T的值。

示例

查询:

结果:

查询:

结果:

accurateCastOrDefault(x, T[, default_value])

将输入值x转换为指定的数据类型T。如果目标类型中不可表示转换后的值,则返回默认类型值或指定的default_value

语法

参数

  • x — 输入值。
  • T — 返回的数据类型名称。
  • default_value — 返回的数据类型的默认值。

返回值

  • 转换为指定的数据类型T的值。

示例

查询:

结果:

查询:

结果:

toInterval

根据数值和间隔单位(例如,'second'或'day')创建一个Interval数据类型值。

语法

参数

  • value — 间隔长度。整数或其字符串表示,以及浮点数。(U)Int*/Float*/String

  • unit — 要创建的间隔类型。字符串字面量。 可能的值:

    • nanosecond
    • microsecond
    • millisecond
    • second
    • minute
    • hour
    • day
    • week
    • month
    • quarter
    • year

    unit参数不区分大小写。

返回值

示例

toIntervalYear

返回n年的间隔,类型为IntervalYear

语法

参数

返回值

示例

查询:

结果:

toIntervalQuarter

返回n个季度的间隔,类型为IntervalQuarter

语法

参数

返回值

示例

查询:

结果:

toIntervalMonth

返回n个月的间隔,类型为IntervalMonth

语法

参数

返回值

示例

查询:

结果:

toIntervalWeek

返回n周的间隔,类型为IntervalWeek

语法

参数

返回值

示例

查询:

结果:

toIntervalDay

返回n天的间隔,类型为IntervalDay

语法

参数

返回值

示例

查询:

结果:

toIntervalHour

返回n小时的间隔,类型为IntervalHour

语法

参数

返回值

示例

查询:

结果:

toIntervalMinute

返回n分钟的间隔,类型为IntervalMinute

语法

参数

返回值

示例

查询:

结果:

toIntervalSecond

返回n秒的间隔,类型为IntervalSecond

语法

参数

返回值

示例

查询:

结果:

toIntervalMillisecond

返回n毫秒的间隔,类型为IntervalMillisecond

语法

参数

返回值

示例

查询:

结果:

toIntervalMicrosecond

返回n微秒的间隔,类型为IntervalMicrosecond

语法

参数

返回值

示例

查询:

结果:

toIntervalNanosecond

返回一个 n 纳秒的间隔,数据类型为 IntervalNanosecond

语法

参数

  • n — 纳秒的数量。整数数字或其字符串表示,以及浮点数。(U)Int*/Float*/String

返回值

示例

查询:

结果:

parseDateTime

String 转换为 DateTime,符合 MySQL 格式字符串

该函数是 formatDateTime 函数的反向操作。

语法

参数

  • str — 要解析的字符串
  • format — 格式字符串。可选。如果未指定,默认为 %Y-%m-%d %H:%i:%s
  • timezone时区。可选。

返回值

根据 MySQL 风格的格式字符串从输入字符串解析出 DateTime 值。

支持的格式说明符

formatDateTime 列出的所有格式说明符相同,除了:

  • %Q: 季度 (1-4)

示例

别名: TO_TIMESTAMP

parseDateTimeOrZero

parseDateTime 相同,但在遇到无法处理的日期格式时返回零日期。

parseDateTimeOrNull

parseDateTime 相同,但在遇到无法处理的日期格式时返回 NULL

别名: str_to_date

parseDateTimeInJodaSyntax

parseDateTime 类似,但格式字符串采用 Joda,而不是 MySQL 语法。

该函数是 formatDateTimeInJodaSyntax 函数的反向操作。

语法

参数

  • str — 要解析的字符串
  • format — 格式字符串。可选。如果未指定,默认为 yyyy-MM-dd HH:mm:ss
  • timezone时区。可选。

返回值

根据 Joda 风格的格式字符串从输入字符串解析出 DateTime 值。

支持的格式说明符

formatDateTimeInJoda 列出的所有格式说明符相同,除了:

  • S: 秒的分数
  • z: 时区
  • Z: 时区偏移/ID

示例

parseDateTimeInJodaSyntaxOrZero

parseDateTimeInJodaSyntax 相同,但在遇到无法处理的日期格式时返回零日期。

parseDateTimeInJodaSyntaxOrNull

parseDateTimeInJodaSyntax 相同,但在遇到无法处理的日期格式时返回 NULL

parseDateTime64

String 转换为 DateTime64,符合 MySQL 格式字符串

语法

参数

  • str — 要解析的字符串。
  • format — 格式字符串。可选。如果未指定,默认为 %Y-%m-%d %H:%i:%s.%f
  • timezone时区。可选。

返回值

根据 MySQL 风格的格式字符串从输入字符串解析出 DateTime64 值。 返回值的精度为 6。

parseDateTime64OrZero

parseDateTime64 相同,但在遇到无法处理的日期格式时返回零日期。

parseDateTime64OrNull

parseDateTime64 相同,但在遇到无法处理的日期格式时返回 NULL

parseDateTime64InJodaSyntax

String 转换为 DateTime64,符合 Joda 格式字符串

语法

参数

  • str — 要解析的字符串。
  • format — 格式字符串。可选。如果未指定,默认为 yyyy-MM-dd HH:mm:ss
  • timezone时区。可选。

返回值

根据 Joda 风格的格式字符串从输入字符串解析出 DateTime64 值。 返回值的精度等于格式字符串中的 S 占位符的数量(但最多为 6)。

parseDateTime64InJodaSyntaxOrZero

parseDateTime64InJodaSyntax 相同,但在遇到无法处理的日期格式时返回零日期。

parseDateTime64InJodaSyntaxOrNull

parseDateTime64InJodaSyntax 相同,但在遇到无法处理的日期格式时返回 NULL

parseDateTimeBestEffort

parseDateTime32BestEffort

String 表示的日期和时间转换为 DateTime 数据类型。

该函数解析 ISO 8601RFC 1123 - 5.2.14 RFC-822 日期和时间规范、ClickHouse的及其他一些日期和时间格式。

语法

参数

  • time_string — 包含要转换的日期和时间的字符串。String
  • time_zone — 时区。该函数根据时区解析 time_stringString

支持的非标准格式

  • 包含 9..10 位 unix 时间戳 的字符串。
  • 带有日期和时间成分的字符串:YYYYMMDDhhmmssDD/MM/YYYY hh:mm:ssDD-MM-YY hh:mmYYYY-MM-DD hh:mm:ss 等。
  • 仅包含日期而没有时间成分的字符串:YYYYYYYYMMYYYY*MMDD/MM/YYYYDD-MM-YY 等。
  • 包含日期和时间的字符串:DDDD hhDD hh:mm。在这种情况下,将 MM 替换为 01
  • 包含日期和时间以及时区偏移信息的字符串:YYYY-MM-DD hh:mm:ss ±h:mm 等。例如,2020-12-12 17:36:00 -5:00
  • syslog 时间戳Mmm dd hh:mm:ss。例如,Jun 9 14:20:32

对于所有带分隔符的格式,函数可以解析月份名称,形式可以是完整名称或月份名称的前三个字母。例如:24/DEC/1824-Dec-1801-September-2018。 如果未指定年份,则默认为当前年份。如果结果的 DateTime 恰好在未来(即使是在当前时刻之后的一秒),则当前年份将替换为前一年。

返回值

  • time_string 转换为 DateTime 数据类型。

示例

查询:

结果:

查询:

结果:

查询:

结果:

查询:

结果:

查询:

结果:

查询:

结果:

另见

parseDateTimeBestEffortUS

该函数在处理 ISO 日期格式时行为类似于 parseDateTimeBestEffort,例如 YYYY-MM-DD hh:mm:ss,以及其他日期格式,其中月份和日期组件可以明确提取,例如 YYYYMMDDhhmmssYYYY-MMDD hhYYYY-MM-DD hh:mm:ss ±h:mm。如果月份和日期组件无法明确提取,例如 MM/DD/YYYYMM-DD-YYYYMM-DD-YY,则优先使用美国日期格式,而不是 DD/MM/YYYYDD-MM-YYYYDD-MM-YY。作为后者的例外,如果月份大于 12 且小于或等于 31,则该函数回退到 parseDateTimeBestEffort 的行为,例如 15/08/2020 被解析为 2020-08-15

parseDateTimeBestEffortOrNull

parseDateTime32BestEffortOrNull

parseDateTimeBestEffort 相同,但在遇到无法处理的日期格式时返回 NULL

parseDateTimeBestEffortOrZero

parseDateTime32BestEffortOrZero

parseDateTimeBestEffort 相同,但在遇到无法处理的日期格式时返回零日期或零日期时间。

parseDateTimeBestEffortUSOrNull

parseDateTimeBestEffortUS 函数相同,但在遇到无法处理的日期格式时返回 NULL

parseDateTimeBestEffortUSOrZero

parseDateTimeBestEffortUS 函数相同,但在遇到无法处理的日期格式时返回零日期(1970-01-01)或零日期和时间(1970-01-01 00:00:00)。

parseDateTime64BestEffort

parseDateTimeBestEffort 函数相同,但还可以解析毫秒和微秒并返回 DateTime 数据类型。

语法

参数

  • time_string — 包含要转换的日期或日期时间的字符串。String
  • precision — 必需的精度。3 — 毫秒,6 — 微秒。默认值为 3。可选。UInt8
  • time_zone时区。该函数根据时区解析 time_string。可选。String

返回值

  • time_string 转换为 DateTime 数据类型。

示例

查询:

结果:

parseDateTime64BestEffortUS

parseDateTime64BestEffort 相同,但在模糊情况下该函数优先使用美国日期格式(MM/DD/YYYY 等)。

parseDateTime64BestEffortOrNull

parseDateTime64BestEffort 相同,但在遇到无法处理的日期格式时返回 NULL

parseDateTime64BestEffortOrZero

parseDateTime64BestEffort 相同,但在遇到无法处理的日期格式时返回零日期或零日期时间。

parseDateTime64BestEffortUSOrNull

parseDateTime64BestEffort 相同,但在模糊情况下该函数优先使用美国日期格式(MM/DD/YYYY 等),并在遇到无法处理的日期格式时返回 NULL

parseDateTime64BestEffortUSOrZero

parseDateTime64BestEffort 相同,但在模糊情况下该函数优先使用美国日期格式(MM/DD/YYYY 等),并在遇到无法处理的日期格式时返回零日期或零日期时间。

toLowCardinality

将输入参数转换为相同数据类型的 LowCardinality 版本。

要从 LowCardinality 数据类型转换数据,请使用 CAST 函数。例如,CAST(x as String)

语法

参数

返回值

示例

查询:

结果:

toUnixTimestamp64Second

DateTime64 转换为具有固定秒精度的 Int64 值。输入值根据其精度进行适当的缩放。

备注

输出值是 UTC 中的时间戳,而不是 DateTime64 的时区中的时间戳。

语法

参数

  • value — 具有任意精度的 DateTime64 值。DateTime64

返回值

  • value 转换为 Int64 数据类型。Int64

示例

查询:

结果:

toUnixTimestamp64Milli

DateTime64 转换为具有固定毫秒精度的 Int64 值。输入值根据其精度进行适当的缩放。

备注

输出值是 UTC 中的时间戳,而不是 DateTime64 的时区中的时间戳。

语法

参数

  • value — 具有任意精度的 DateTime64 值。DateTime64

返回值

  • value 转换为 Int64 数据类型。Int64

示例

查询:

结果:

toUnixTimestamp64Micro

DateTime64 转换为具有固定微秒精度的 Int64 值。输入值根据其精度进行适当的缩放。

备注

输出值是 UTC 中的时间戳,而不是 DateTime64 的时区中的时间戳。

语法

参数

  • value — 具有任意精度的 DateTime64 值。DateTime64

返回值

  • value 转换为 Int64 数据类型。Int64

示例

查询:

结果:

toUnixTimestamp64Nano

DateTime64 转换为具有固定纳秒精度的 Int64 值。输入值根据其精度进行适当的缩放。

备注

输出值是 UTC 中的时间戳,而不是 DateTime64 的时区中的时间戳。

语法

参数

  • value — 具有任意精度的 DateTime64 值。DateTime64

返回值

  • value 转换为 Int64 数据类型。Int64

示例

查询:

结果:

fromUnixTimestamp64Second

Int64 转换为具有固定秒精度和可选时区的 DateTime64 值。输入值根据其精度进行适当的缩放。

备注

请注意,输入值被视为 UTC 时间戳,而不是在给定(或隐含)时区的时间戳。

语法

参数

  • value — 具有任意精度的值。Int64
  • timezone —(可选)结果的时区名称。String

返回值

  • value 转换为精度为 0 的 DateTime64。DateTime64

示例

查询:

结果:

fromUnixTimestamp64Milli

Int64 转换为具有固定毫秒精度和可选时区的 DateTime64 值。输入值根据其精度进行适当的缩放。

备注

请注意,输入值被视为 UTC 时间戳,而不是在给定(或隐含)时区的时间戳。

语法

参数

  • value — 具有任意精度的值。Int64
  • timezone —(可选)结果的时区名称。String

返回值

  • value 转换为精度为 3 的 DateTime64。DateTime64

示例

查询:

结果:

fromUnixTimestamp64Micro

Int64 转换为具有固定微秒精度和可选时区的 DateTime64 值。输入值根据其精度进行适当的缩放。

备注

请注意,输入值被视为 UTC 时间戳,而不是在给定(或隐含)时区的时间戳。

语法

参数

  • value — 具有任意精度的值。Int64
  • timezone —(可选)结果的时区名称。String

返回值

  • value 转换为精度为 6 的 DateTime64。DateTime64

示例

查询:

结果:

fromUnixTimestamp64Nano

Int64 转换为具有固定纳秒精度和可选时区的 DateTime64 值。输入值根据其精度进行适当的缩放。

备注

请注意,输入值被视为 UTC 时间戳,而不是在给定(或隐含)时区的时间戳。

语法

参数

  • value — 具有任意精度的值。Int64
  • timezone —(可选)结果的时区名称。String

返回值

  • value 转换为精度为 9 的 DateTime64。DateTime64

示例

查询:

结果:

formatRow

通过给定格式将任意表达式转换为字符串。

语法

参数

  • format — 文本格式。例如,CSVTSV
  • x,y, ... — 表达式。

返回值

  • 一个格式化的字符串。(对于文本格式,它通常以换行符结束)。

示例

查询:

结果:

注意:如果格式包含后缀/前缀,它将在每行中写入。

示例

查询:

结果:

注意:此函数仅支持基于行的格式。

formatRowNoNewline

通过给定格式将任意表达式转换为字符串。与 formatRow 的不同之处在于,此函数在最后去掉多余的 \n(如果有的话)。

语法

参数

  • format — 文本格式。例如,CSVTSV
  • x,y, ... — 表达式。

返回值

  • 一个格式化的字符串。

示例

查询:

结果: