类型转换函数
数据转换的常见问题
ClickHouse 通常使用与 C++ 程序 相同的行为。
to<type> 函数和 CAST 在某些情况下表现不同,例如在 LowCardinality 的情况下:CAST 会移除 LowCardinality 特性,而 to<type> 函数不会。同样适用于 Nullable,这种行为与 SQL 标准不兼容,可以使用 cast_keep_nullable 设置进行更改。
如果将一种数据类型的数值转换为较小的数据类型(例如从 Int64 到 Int32)或在不兼容的数据类型之间进行转换(例如从 String 到 Int),请注意潜在的数据丢失。请务必仔细检查结果是否符合预期。
示例
关于 toString 函数的说明
toString 函数族允许在数字、字符串(但不包括固定字符串)、日期以及包含时间日期之间进行转换。所有这些函数都接受一个参数。
- 在转换为或从字符串时,该值将使用与 TabSeparated 格式(以及几乎所有其他文本格式)相同的规则进行格式化或解析。如果字符串无法解析,则会抛出异常并取消请求。
- 在将日期转换为数字或反之亦然时,日期对应于自 Unix 纪元开始以来的天数。
- 在将包含时间的日期转换为数字或反之亦然时,包含时间的日期对应于自 Unix 纪元开始以来的秒数。
DateTime参数的toString函数可以接受第二个 String 参数,其中包含时区名称,例如:Europe/Amsterdam。在这种情况下,时间将根据指定时区进行格式化。
关于 toDate/toDateTime 函数的说明
toDate/toDateTime 函数的日期和包含时间的日期格式定义如下
作为例外,如果从 UInt32、Int32、UInt64 或 Int64 数值类型转换为 Date,并且该数字大于或等于 65536,则该数字将被解释为 Unix 时间戳(而不是天数),并四舍五入到日期。这支持了将 toDate(unix_timestamp) 写入的常见情况,否则会报错,并且需要编写更繁琐的 toDate(toDateTime(unix_timestamp))。
日期和包含时间的日期之间的转换以自然方式进行:通过添加空时间或删除时间。
数值类型之间的转换使用与 C++ 中不同数值类型之间的赋值相同的规则。
示例
查询
结果
另请参阅 toUnixTimestamp 函数。
CAST
引入于:v1.1
将值转换为指定的数据类型。与 reinterpret 函数不同,CAST 尝试在目标类型中生成相同的值。如果不可能,则会引发异常。
语法
参数
返回值
返回转换为目标数据类型的值。 Any
示例
基本用法
使用 AS 语法
使用 :: 语法
accurateCast
引入于:v1.1
将值转换为指定的数据类型。与 CAST 不同,accurateCast 执行更严格的类型检查,如果转换会导致数据精度损失或转换不可能,则会抛出异常。
此函数比常规 CAST 更安全,因为它防止了精度损失和无效转换。
语法
参数
返回值
返回转换为目标数据类型的值。 Any
示例
成功转换
字符串转换为数字
accurateCastOrDefault
引入于:v21.1
将值转换为指定的数据类型。与 accurateCast 类似,但如果无法准确执行转换,则返回默认值而不是抛出异常。
如果提供了第二个参数作为默认值,则它必须是目标类型。如果未提供默认值,则使用目标类型的默认值。
语法
参数
x— 要转换的值。AnyT— 目标数据类型名称。const Stringdefault_value— 可选。转换失败时返回的默认值。Any
返回值
返回转换为目标数据类型的值,或者如果转换不可能则返回默认值。 Any
示例
成功转换
使用显式默认值转换失败
使用隐式默认值转换失败
accurateCastOrNull
引入于:v1.1
将值转换为指定的数据类型。与 accurateCast 类似,但如果无法准确执行转换,则返回 NULL 而不是抛出异常。
此函数结合了 accurateCast 的安全性与优雅的错误处理。
语法
参数
返回值
返回转换为目标数据类型的值,或者如果转换不可能则返回 NULL。 Any
示例
成功转换
转换失败返回 NULL
formatRow
引入于:v20.7
通过给定的格式将任意表达式转换为字符串。
如果格式包含后缀/前缀,则它将在每一行中写入。此函数仅支持基于行的格式。
语法
参数
返回值
格式化的字符串。(对于文本格式,通常以换行符结尾)。 String
示例
基本用法
使用自定义格式
formatRowNoNewline
引入于:v20.7
与 formatRow 相同,但会删除每一行的换行符。
通过给定的格式将任意表达式转换为字符串,但会删除结果中的任何尾随换行符。
语法
参数
返回值
返回删除了换行符的格式化字符串。 String
示例
基本用法
fromUnixTimestamp64Micro
引入于:v20.5
将微秒中的 Unix 时间戳转换为具有微秒精度的 DateTime64 值。
输入值被视为具有微秒精度的 Unix 时间戳(自 1970-01-01 00:00:00 UTC 以来的微秒数)。
语法
参数
返回值
返回具有微秒精度的 DateTime64 值。 DateTime64(6)
示例
使用示例
fromUnixTimestamp64Milli
引入于:v20.5
将毫秒中的 Unix 时间戳转换为具有毫秒精度的 DateTime64 值。
输入值被视为具有毫秒精度的 Unix 时间戳(自 1970-01-01 00:00:00 UTC 以来的毫秒数)。
语法
参数
返回值
具有毫秒精度的 DateTime64 值。 DateTime64(3)
示例
使用示例
fromUnixTimestamp64Nano
引入于:v20.5
将纳秒中的 Unix 时间戳转换为具有纳秒精度的 DateTime64 值。
输入值被视为具有纳秒精度的 Unix 时间戳(自 1970-01-01 00:00:00 UTC 以来的纳秒数)。
请注意,输入值被视为 UTC 时间戳,而不是输入值的时区。
语法
参数
返回值
返回具有纳秒精度的 DateTime64 值。 DateTime64(9)
示例
使用示例
fromUnixTimestamp64Second
引入于:v24.12
将秒中的 Unix 时间戳转换为具有秒精度的 DateTime64 值。
输入值被视为具有秒精度的 Unix 时间戳(自 1970-01-01 00:00:00 UTC 以来的秒数)。
语法
参数
返回值
返回具有秒精度的 DateTime64 值。 DateTime64(0)
示例
使用示例
parseDateTime
引入于: v23.3
根据 MySQL 日期格式字符串解析日期和时间字符串。
此函数是 formatDateTime 的反函数。它使用格式字符串解析 String 参数。返回 DateTime 类型。
语法
别名:TO_UNIXTIME
参数
time_string— 要解析为 DateTime 的字符串。Stringformat— 指定如何解析 time_string 的格式字符串。Stringtimezone— 可选。时区。String
返回值
返回根据 MySQL 样式格式字符串解析的 DateTime。 DateTime
示例
使用示例
parseDateTime32BestEffort
引入于:v20.9
将日期和时间的字符串表示形式转换为 DateTime 数据类型。
该函数解析 ISO 8601、RFC 1123 - 5.2.14 RFC-822 Date and Time Specification、ClickHouse 以及其他一些日期和时间格式。
语法
参数
返回值
返回作为 DateTime 的 time_string。 DateTime
示例
使用示例
使用时区
Unix 时间戳
parseDateTime32BestEffortOrNull
引入于:v20.9
与 parseDateTime32BestEffort 相同,但当遇到无法处理的日期格式时,它返回 NULL。
语法
参数
返回值
返回从字符串解析的 DateTime 对象,如果解析失败则返回 NULL。 DateTime
示例
使用示例
parseDateTime32BestEffortOrZero
引入于:v20.9
与 parseDateTime32BestEffort 相同,但当遇到无法处理的日期格式时,它返回零日期或零日期时间。
语法
参数
返回值
返回从字符串解析的 DateTime 对象,如果解析失败则返回零日期 (1970-01-01 00:00:00)。 DateTime
示例
使用示例
parseDateTime64
引入于:v24.11
根据 MySQL 日期格式字符串解析具有亚秒精度的日期和时间字符串。
此函数是 DateTime64 的 formatDateTime 的反函数。它使用格式字符串解析 String 参数。返回一个 DateTime64 类型,可以表示从 1900 年到 2299 年具有亚秒精度的日期。
语法
参数
time_string— 要解析为 DateTime64 的字符串。Stringformat— 指定如何解析 time_string 的格式字符串。Stringtimezone— 可选。时区。String
返回值
返回根据 MySQL 样式格式字符串从输入字符串解析的 DateTime64。 DateTime64
示例
使用示例
parseDateTime64BestEffort
引入于: v20.1
与 parseDateTimeBestEffort 函数相同,但也会解析毫秒和微秒,并返回 DateTime64 数据类型。
语法
参数
time_string— 包含要转换为 DateTime64 的日期或日期与时间的字符串。Stringprecision— 可选。所需的精度。3表示毫秒,6表示微秒。默认值:3。UInt8time_zone— 可选。时区。该函数根据时区解析time_string。String
返回值
返回将 time_string 转换为 DateTime64 数据类型的结果。 DateTime64
示例
使用示例
parseDateTime64BestEffortOrNull
引入于: v20.1
与 parseDateTime64BestEffort 相同,但当遇到无法处理的日期格式时,它返回 NULL。
语法
参数
time_string— 包含要转换为 DateTime64 的日期或日期与时间的字符串。Stringprecision— 可选。所需的精度。3表示毫秒,6表示微秒。默认值:3。UInt8time_zone— 可选。时区。该函数根据时区解析time_string。String
返回值
返回将 time_string 转换为 DateTime64 的结果,如果输入无法解析则返回 NULL。 DateTime64 或 NULL
示例
使用示例
parseDateTime64BestEffortOrZero
引入于: v20.1
与 parseDateTime64BestEffort 相同,但当遇到无法处理的日期格式时,它返回零日期或零日期时间。
语法
参数
time_string— 包含要转换为 DateTime64 的日期或日期与时间的字符串。Stringprecision— 可选。所需的精度。3表示毫秒,6表示微秒。默认值:3。UInt8time_zone— 可选。时区。该函数根据时区解析time_string。String
返回值
返回将 time_string 转换为 DateTime64 的结果,如果输入无法解析则返回零日期/时间 (1970-01-01 00:00:00.000)。 DateTime64
示例
使用示例
parseDateTime64BestEffortUS
引入于:v22.8
与 parseDateTime64BestEffort 相同,但如果存在歧义,此函数更喜欢美国日期格式 (MM/DD/YYYY 等)。
语法
参数
time_string— 包含要转换为 DateTime64 的日期或日期与时间的字符串。Stringprecision— 可选。所需的精度。3表示毫秒,6表示微秒。默认值:3。UInt8time_zone— 可选。时区。该函数根据时区解析time_string。String
返回值
返回将 time_string 转换为 DateTime64 的结果,在歧义情况下使用美国日期格式偏好。 DateTime64
示例
使用示例
parseDateTime64BestEffortUSOrNull
引入于:v22.8
与 parseDateTime64BestEffort 相同,但如果存在歧义,此函数更喜欢美国日期格式 (MM/DD/YYYY 等),并且当遇到无法处理的日期格式时,它返回 NULL。
语法
参数
time_string— 包含要转换为 DateTime64 的日期或日期与时间的字符串。Stringprecision— 可选。所需的精度。3表示毫秒,6表示微秒。默认值:3。UInt8time_zone— 可选。时区。该函数根据时区解析time_string。String
返回值
返回将 time_string 转换为 DateTime64 的结果,使用美国格式偏好,如果输入无法解析则返回 NULL。 DateTime64 或 NULL
示例
使用示例
parseDateTime64BestEffortUSOrZero
引入于:v22.8
与 parseDateTime64BestEffort 相同,但如果存在歧义,此函数更喜欢美国日期格式 (MM/DD/YYYY 等),并且当遇到无法处理的日期格式时,它返回零日期或零日期时间。
语法
参数
time_string— 包含要转换为 DateTime64 的日期或日期与时间的字符串。Stringprecision— 可选。所需的精度。3表示毫秒,6表示微秒。默认值:3。UInt8time_zone— 可选。时区。该函数根据时区解析time_string。String
返回值
返回将 time_string 转换为 DateTime64 的结果,使用美国格式偏好,如果输入无法解析则返回零日期/时间 (1970-01-01 00:00:00.000)。 DateTime64
示例
使用示例
parseDateTime64InJodaSyntax
引入于:v24.10
根据 Joda 日期格式字符串解析具有亚秒精度的日期和时间字符串。
此函数是 DateTime64 的 formatDateTimeInJodaSyntax 的反函数。它使用 Joda 样式的格式字符串解析 String 参数。返回一个 DateTime64 类型,可以表示从 1900 年到 2299 年具有亚秒精度的日期。
有关格式模式,请参阅 Joda Time 文档。
语法
参数
time_string— 要解析为 DateTime64 的字符串。Stringformat— Joda 语法中的格式字符串,指定如何解析 time_string。Stringtimezone— 可选。时区。String
返回值
返回根据 Joda 样式格式字符串从输入字符串解析的 DateTime64。 DateTime64
示例
使用示例
parseDateTime64InJodaSyntaxOrNull
引入于:v24.10
与 parseDateTime64InJodaSyntax 相同,但当遇到无法解析的日期格式时,它返回 NULL。
语法
参数
time_string— 要解析为 DateTime64 的字符串。Stringformat— Joda 语法中的格式字符串,指定如何解析 time_string。Stringtimezone— 可选。时区。String
返回值
返回从输入字符串解析的 DateTime64,如果解析失败则返回 NULL。 Nullable(DateTime64)
示例
使用示例
parseDateTime64InJodaSyntaxOrZero
引入于:v24.10
与 parseDateTime64InJodaSyntax 相同,但当遇到无法解析的日期格式时,它返回零日期。
语法
参数
time_string— 要解析为 DateTime64 的字符串。Stringformat— Joda 语法中的格式字符串,指定如何解析 time_string。Stringtimezone— 可选。时区。String
返回值
返回从输入字符串解析的 DateTime64,如果解析失败则返回零 DateTime64。 DateTime64
示例
使用示例
parseDateTime64OrNull
引入于:v24.11
与 parseDateTime64 相同,但当遇到无法解析的日期格式时,它返回 NULL。
语法
参数
time_string— 要解析为 DateTime64 的字符串。Stringformat— 指定如何解析 time_string 的格式字符串。Stringtimezone— 可选。时区。String
返回值
返回从输入字符串解析的 DateTime64,如果解析失败则返回 NULL。 Nullable(DateTime64)
示例
使用示例
parseDateTime64OrZero
引入于:v24.11
与 parseDateTime64 相同,但当遇到无法解析的日期格式时,它返回零日期。
语法
参数
time_string— 要解析为 DateTime64 的字符串。Stringformat— 指定如何解析 time_string 的格式字符串。Stringtimezone— 可选。时区。String
返回值
返回从输入字符串解析的 DateTime64,如果解析失败则返回零 DateTime64。 DateTime64
示例
使用示例
parseDateTimeBestEffort
引入于:v1.1
将 String 表示形式的日期和时间转换为 DateTime 数据类型。该函数解析 ISO 8601、RFC 1123 - 5.2.14 RFC-822 日期和时间规范、ClickHouse 的和其他一些日期和时间格式。
支持的非标准格式
- 包含 9..10 位数字的 Unix 时间戳的字符串。
- 包含日期和时间组件的字符串:
YYYYMMDDhhmmss、DD/MM/YYYY hh:mm:ss、DD-MM-YY hh:mm、YYYY-MM-DD hh:mm:ss等。 - 包含日期但不包含时间组件的字符串:
YYYY、YYYYMM、YYYY*MM、DD/MM/YYYY、DD-MM-YY等。 - 包含日期和时间的字符串:
DD、DD hh、DD hh:mm。在这种情况下,MM被替换为01。 - 包含日期和时间以及时区偏移信息的字符串:
YYYY-MM-DD hh:mm:ss ±h:mm等。 - Syslog 时间戳:
Mmm dd hh:mm:ss。例如,Jun 9 14:20:32。
对于带有分隔符的所有格式,该函数解析用全名或月份名称的前三个字母表示的月份名称。如果未指定年份,则认为它等于当前年份。
语法
参数
返回值
返回作为 DateTime 的 time_string。 DateTime
示例
使用示例
使用时区
Unix 时间戳
parseDateTimeBestEffortOrNull
引入于:v1.1
与 parseDateTimeBestEffort 相同,但当遇到无法处理的日期格式时,它返回 NULL。该函数解析 ISO 8601、RFC 1123 - 5.2.14 RFC-822 日期和时间规范、ClickHouse 的和其他一些日期和时间格式。
支持的非标准格式
- 包含 9..10 位数字的 Unix 时间戳的字符串。
- 包含日期和时间组件的字符串:
YYYYMMDDhhmmss、DD/MM/YYYY hh:mm:ss、DD-MM-YY hh:mm、YYYY-MM-DD hh:mm:ss等。 - 包含日期但不包含时间组件的字符串:
YYYY、YYYYMM、YYYY*MM、DD/MM/YYYY、DD-MM-YY等。 - 包含日期和时间的字符串:
DD、DD hh、DD hh:mm。在这种情况下,MM被替换为01。 - 包含日期和时间以及时区偏移信息的字符串:
YYYY-MM-DD hh:mm:ss ±h:mm等。 - Syslog 时间戳:
Mmm dd hh:mm:ss。例如,Jun 9 14:20:32。
对于带有分隔符的所有格式,该函数解析用全名或月份名称的前三个字母表示的月份名称。如果未指定年份,则认为它等于当前年份。
语法
参数
返回值
返回 time_string 作为 DateTime,如果输入无法解析则返回 NULL。 DateTime 或 NULL
示例
使用示例
parseDateTimeBestEffortOrZero
引入于:v1.1
与 parseDateTimeBestEffort 相同,但当遇到无法处理的日期格式时,它返回零日期或零日期时间。该函数解析 ISO 8601、RFC 1123 - 5.2.14 RFC-822 日期和时间规范、ClickHouse 的和其他一些日期和时间格式。
支持的非标准格式
- 包含 9..10 位数字的 Unix 时间戳的字符串。
- 包含日期和时间组件的字符串:
YYYYMMDDhhmmss、DD/MM/YYYY hh:mm:ss、DD-MM-YY hh:mm、YYYY-MM-DD hh:mm:ss等。 - 包含日期但不包含时间组件的字符串:
YYYY、YYYYMM、YYYY*MM、DD/MM/YYYY、DD-MM-YY等。 - 包含日期和时间的字符串:
DD、DD hh、DD hh:mm。在这种情况下,MM被替换为01。 - 包含日期和时间以及时区偏移信息的字符串:
YYYY-MM-DD hh:mm:ss ±h:mm等。 - Syslog 时间戳:
Mmm dd hh:mm:ss。例如,Jun 9 14:20:32。
对于带有分隔符的所有格式,该函数解析用全名或月份名称的前三个字母表示的月份名称。如果未指定年份,则认为它等于当前年份。
语法
参数
返回值
返回 time_string 作为 DateTime,如果输入无法解析则返回零日期/时间 (1970-01-01 或 1970-01-01 00:00:00)。 DateTime
示例
使用示例
parseDateTimeBestEffortUS
引入于:v1.1
此函数对于 ISO 日期格式的行为类似于 parseDateTimeBestEffort,例如 YYYY-MM-DD hh:mm:ss,以及其他可以明确提取月份和日期组件的日期格式,例如 YYYYMMDDhhmmss、YYYY-MM、DD hh 或 YYYY-MM-DD hh:mm:ss ±h:mm。如果无法明确提取月份和日期组件,例如 MM/DD/YYYY、MM-DD-YYYY 或 MM-DD-YY,则它优先使用美国日期格式,而不是 DD/MM/YYYY、DD-MM-YYYY 或 DD-MM-YY。作为前述语句的例外,如果月份大于 12 且小于或等于 31,则此函数回退到 parseDateTimeBestEffort 的行为,例如 15/08/2020 将被解析为 2020-08-15。
语法
参数
返回值
以美国日期格式偏好处理模糊情况,将 time_string 作为 DateTime 返回。 DateTime
示例
使用示例
parseDateTimeBestEffortUSOrNull
引入于:v1.1
与 parseDateTimeBestEffortUS 函数相同,但如果遇到无法处理的日期格式,则返回 NULL。
此函数对于 ISO 日期格式的行为类似于 parseDateTimeBestEffort,但在模糊情况下优先使用美国日期格式,并且在解析错误时返回 NULL。
语法
参数
返回值
以美国格式偏好将 time_string 作为 DateTime 返回,如果无法解析输入,则返回 NULL。 DateTime 或 NULL
示例
使用示例
parseDateTimeBestEffortUSOrZero
引入于:v1.1
与 parseDateTimeBestEffortUS 函数相同,但如果遇到无法处理的日期格式,则返回零日期 (1970-01-01) 或带时间的零日期 (1970-01-01 00:00:00)。
此函数对于 ISO 日期格式的行为类似于 parseDateTimeBestEffort,但在模糊情况下优先使用美国日期格式,并且在解析错误时返回零值。
语法
参数
返回值
以美国格式偏好将 time_string 作为 DateTime 返回,如果无法解析输入,则返回零日期/时间 (1970-01-01 或 1970-01-01 00:00:00)。 DateTime
示例
使用示例
parseDateTimeInJodaSyntax
引入于: v23.3
根据 Joda 日期格式字符串解析日期和时间字符串。
此函数是 formatDateTimeInJodaSyntax 的反函数。它使用 Joda 样式的格式字符串解析 String 参数。返回 DateTime 类型。
有关格式模式,请参阅 Joda Time 文档。
语法
参数
time_string— 要解析为 DateTime 的字符串。Stringformat— Joda 语法中的格式字符串,指定如何解析 time_string。Stringtimezone— 可选。时区。String
返回值
根据 Joda 样式格式字符串解析的 DateTime。 DateTime
示例
使用示例
parseDateTimeInJodaSyntaxOrNull
引入于: v23.3
与 parseDateTimeInJodaSyntax 相同,但如果遇到无法解析的日期格式,则返回 NULL。
语法
参数
time_string— 要解析为 DateTime 的字符串。Stringformat— Joda 语法中的格式字符串,指定如何解析 time_string。Stringtimezone— 可选。时区。String
返回值
从输入字符串解析的 DateTime,如果解析失败则返回 NULL。 Nullable(DateTime)
示例
使用示例
parseDateTimeInJodaSyntaxOrZero
引入于: v23.3
与 parseDateTimeInJodaSyntax 相同,但如果遇到无法解析的日期格式,则返回零日期。
语法
参数
time_string— 要解析为 DateTime 的字符串。Stringformat— Joda 语法中的格式字符串,指定如何解析 time_string。Stringtimezone— 可选。时区。String
返回值
从输入字符串解析的 DateTime,如果解析失败则返回零 DateTime。 DateTime
示例
使用示例
parseDateTimeOrNull
引入于: v23.3
与 parseDateTime 相同,但如果遇到无法解析的日期格式,则返回 NULL。
语法
别名: str_to_date
参数
time_string— 要解析为 DateTime 的字符串。Stringformat— 指定如何解析 time_string 的格式字符串。Stringtimezone— 可选。时区。String
返回值
从输入字符串解析的 DateTime,如果解析失败则返回 NULL。 Nullable(DateTime)
示例
使用示例
parseDateTimeOrZero
引入于: v23.3
与 parseDateTime 相同,但如果遇到无法解析的日期格式,则返回零日期。
语法
参数
time_string— 要解析为 DateTime 的字符串。Stringformat— 指定如何解析 time_string 的格式字符串。Stringtimezone— 可选。时区。String
返回值
从输入字符串解析的 DateTime,如果解析失败则返回零 DateTime。 DateTime
示例
使用示例
reinterpret
引入于:v1.1
使用为提供的 value x 提供的相同源内存字节序列,并将其重新解释为目标类型。
语法
参数
返回值
目标类型值。 Any
示例
使用示例
数组示例
reinterpretAsDate
引入于:v1.1
将输入值重新解释为 Date 值(假定小端字节序),即自 Unix epoch 1970-01-01 以来的天数。
语法
参数
返回值
Date。 Date
示例
使用示例
reinterpretAsDateTime
引入于:v1.1
将输入值重新解释为 DateTime 值(假定小端字节序),即自 Unix epoch 1970-01-01 以来的秒数。
语法
参数
返回值
日期和时间。 DateTime
示例
使用示例
reinterpretAsFixedString
引入于:v1.1
将输入值重新解释为固定字符串(假定小端字节序)。末尾的空字节将被忽略,例如,该函数返回 UInt32 值 255 的字符串,其中包含单个字符。
语法
参数
返回值
包含表示 x 的字节的固定字符串。 FixedString
示例
使用示例
reinterpretAsFloat32
引入于:v1.1
将输入值重新解释为 Float32 类型的值。与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释的值 x。 Float32
示例
使用示例
reinterpretAsFloat64
引入于:v1.1
将输入值重新解释为 Float64 类型的值。与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释的值 x。 Float64
示例
使用示例
reinterpretAsInt128
引入于:v1.1
将输入值重新解释为 Int128 类型的值。与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释的值 x。 Int128
示例
使用示例
reinterpretAsInt16
引入于:v1.1
将输入值重新解释为 Int16 类型的值。与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释的值 x。 Int16
示例
使用示例
reinterpretAsInt256
引入于:v1.1
将输入值重新解释为 Int256 类型的值。与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释后的值 x。 Int256
示例
使用示例
reinterpretAsInt32
引入于:v1.1
将输入值重新解释为 Int32 类型的值。 与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释后的值 x。 Int32
示例
使用示例
reinterpretAsInt64
引入于:v1.1
将输入值重新解释为 Int64 类型的值。 与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释后的值 x。 Int64
示例
使用示例
reinterpretAsInt8
引入于:v1.1
将输入值重新解释为 Int8 类型的值。 与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释后的值 x。 Int8
示例
使用示例
reinterpretAsString
引入于:v1.1
将输入值重新解释为字符串(假定小端字节序)。 字符串末尾的空字节将被忽略,例如,该函数对于 UInt32 值 255 返回一个包含单个字符的字符串。
语法
参数
返回值
包含表示 x 的字节的字符串。 String
示例
使用示例
reinterpretAsUInt128
引入于:v1.1
将输入值重新解释为 UInt128 类型的值。 与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释后的值 x。 UInt128
示例
使用示例
reinterpretAsUInt16
引入于:v1.1
将输入值重新解释为 UInt16 类型的值。 与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释后的值 x。 UInt16
示例
使用示例
reinterpretAsUInt256
引入于:v1.1
将输入值重新解释为 UInt256 类型的值。 与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释后的值 x。 UInt256
示例
使用示例
reinterpretAsUInt32
引入于:v1.1
将输入值重新解释为 UInt32 类型的值。 与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释后的值 x。 UInt32
示例
使用示例
reinterpretAsUInt64
引入于:v1.1
将输入值重新解释为 UInt64 类型的值。 与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释后的值 x。 UInt64
示例
使用示例
reinterpretAsUInt8
引入于:v1.1
将输入值重新解释为 UInt8 类型的值。 与 CAST 不同,该函数不会尝试保留原始值 - 如果目标类型无法表示输入类型,则输出未定义。
语法
参数
返回值
返回重新解释后的值 x。 UInt8
示例
使用示例
reinterpretAsUUID
引入于:v1.1
接受一个 16 字节的字符串,并以小端字节序解释每个 8 字节的半部分,返回一个 UUID。 如果字符串不够长,则该函数将假定字符串用必要的空字节填充到末尾。 如果字符串长于 16 字节,则忽略末尾的额外字节。
语法
参数
fixed_string— 大端字节字符串。FixedString
返回值
UUID 类型值。 UUID
示例
字符串到 UUID
toBFloat16
引入于:v1.1
将输入值转换为 BFloat16 类型的值。 如果发生错误,则抛出异常。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 16 位脑浮点值。 BFloat16
示例
使用示例
toBFloat16OrNull
引入于:v1.1
将字符串输入值转换为 BFloat16 类型的值。 如果字符串不表示浮点值,则该函数返回 NULL。
支持的参数
- 数字值的字符串表示形式。
不支持的参数(返回 NULL)
- 二进制和十六进制值的字符串表示形式。
- 数字值。
该函数允许在从字符串表示形式转换时无声地丢失精度。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 16 位脑浮点值,否则为 NULL。 BFloat16 或 NULL
示例
使用示例
toBFloat16OrZero
引入于:v1.1
将字符串输入值转换为 BFloat16 类型的值。 如果字符串不表示浮点值,则该函数返回零。
支持的参数
- 数字值的字符串表示形式。
不支持的参数(返回 0)
- 二进制和十六进制值的字符串表示形式。
- 数字值。
该函数允许在从字符串表示形式转换时无声地丢失精度。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 16 位脑浮点值,否则为 0。 BFloat16
示例
使用示例
toBool
引入于:v22.2
将输入值转换为 Bool 类型的值。
语法
参数
expr— 返回数字或字符串的表达式。 对于字符串,接受“true”或“false”(不区分大小写)。(U)Int*或Float*或String或Expression
返回值
根据参数的评估结果返回 true 或 false。 Bool
示例
使用示例
toDate
引入于:v1.1
将输入值转换为 Date 类型。 支持从 String、FixedString、DateTime 或数字类型进行转换。
语法
参数
x— 要转换的输入值。String或FixedString或DateTime或(U)Int*或Float*
返回值
返回转换后的输入值。 Date
示例
字符串到日期转换
DateTime 到日期转换
整数到日期转换
toDate32
引入于: v21.9
将参数转换为 Date32 数据类型。如果值超出范围,toDate32 将返回 Date32 支持的边界值。如果参数的类型是 Date,则会考虑其边界。
语法
参数
返回值
返回日历日期。 Date32
示例
在范围内
超出范围
toDate32OrDefault
引入于:v21.11
将参数转换为 Date32 数据类型。如果值超出范围,toDate32OrDefault 将返回 Date32 支持的下边界值。如果参数具有 Date 类型,则会考虑其边界。如果收到无效参数,则返回默认值。
语法
参数
返回值
如果成功,则返回 Date32 类型的值,否则返回传递的默认值或 1900-01-01。 Date32
示例
成功转换
转换失败
toDate32OrNull
引入于: v21.9
将输入值转换为 Date32 类型的值,但如果收到无效参数,则返回 NULL。与 toDate32 相同,但如果收到无效参数,则返回 NULL。
语法
参数
x— 日期的字符串表示形式。String
返回值
如果成功,则返回 Date32 值,否则返回 NULL。 Date32 或 NULL
示例
使用示例
toDate32OrZero
引入于: v21.9
将输入值转换为 Date32 类型的值,但如果收到无效参数,则返回 Date32 的下边界。与 toDate32 相同,但如果收到无效参数,则返回 Date32 的下边界。
参见
语法
参数
x— 日期的字符串表示形式。String
返回值
如果成功,则返回 Date32 值,否则返回 Date32 的下边界 (1900-01-01)。 Date32
示例
使用示例
toDateOrDefault
引入于:v21.11
类似于 toDate,但如果失败,则返回默认值,该值是第二个参数(如果指定),或者 Date 的下边界。
语法
参数
返回值
如果成功,则返回 Date 类型的值,否则返回传递的默认值或 1970-01-01(如果未传递)。 Date
示例
成功转换
转换失败
toDateOrNull
引入于:v1.1
将输入值转换为 Date 类型的值,但如果收到无效参数,则返回 NULL。与 toDate 相同,但如果收到无效参数,则返回 NULL。
语法
参数
x— 日期的字符串表示形式。String
返回值
如果成功,则返回 Date 值,否则返回 NULL。 Date 或 NULL
示例
使用示例
toDateOrZero
引入于:v1.1
将输入值转换为 Date 类型的值,但如果收到无效参数,则返回 Date 的下边界。与 toDate 相同,但如果收到无效参数,则返回 Date 的下边界。
参见
语法
参数
x— 日期的字符串表示形式。String
返回值
如果成功,则返回 Date 值,否则返回 Date 的下边界 (1970-01-01)。 Date
示例
使用示例
toDateTime
引入于:v1.1
将输入值转换为 DateTime 类型。
如果 expr 是数字,则将其解释为自 Unix Epoch 开始的秒数(作为 Unix 时间戳)。如果 expr 是 String,则可以将其解释为 Unix 时间戳或日期/日期与时间的字符串表示形式。因此,由于歧义,明确禁止解析短数字字符串的表示形式(最多 4 位),例如,字符串 '1999' 既可以是年份(日期/日期时间的不完整字符串表示形式),也可以是 Unix 时间戳。允许更长的数字字符串。
语法
参数
返回值
返回日期时间。 DateTime
示例
使用示例
toDateTime32
引入于:v20.9
将输入值转换为 DateTime 类型。支持从 String、FixedString、Date、Date32、DateTime 或数字类型((U)Int*、Float*、Decimal)进行转换。与 DateTime 相比,DateTime32 提供了扩展范围,支持从 1900-01-01 到 2299-12-31 的日期。
语法
参数
x— 要转换的输入值。String或FixedString或UInt*或Float*或Date或DateTime或DateTime64timezone— 可选。返回的DateTime值的时区。String
返回值
返回转换后的输入值。 DateTime
示例
该值在范围内
作为具有精度的十进制数
使用时区
toDateTime64
引入于: v20.1
将输入值转换为 DateTime64 类型的值。
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expressionscale— 刻度大小(精度):10^(-scale) 秒。UInt8timezone— 可选。指定DateTime64对象的时区。String
返回值
返回带有亚秒精度的日历日期和时间。 DateTime64
示例
该值在范围内
作为具有精度的十进制数
使用时区
toDateTime64OrDefault
引入于:v21.11
类似于 toDateTime64,此函数将输入值转换为 DateTime64 类型的值,但如果收到无效参数,则返回 DateTime64 的默认值或提供的默认值。
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。String或(U)Int*或Float*scale— 刻度大小(精度):10^-precision 秒。UInt8timezone— 可选。时区。Stringdefault— 可选。如果解析不成功,则返回的默认值。DateTime64
返回值
如果成功,则返回 DateTime64 类型的值,否则返回传递的默认值或 1970-01-01 00:00:00.000(如果未传递)。 DateTime64
示例
成功转换
转换失败
toDateTime64OrNull
引入于: v20.1
将输入值转换为 DateTime64 类型的值,但如果收到无效参数,则返回 NULL。与 toDateTime64 相同,但如果收到无效参数,则返回 NULL。
语法
参数
x— 带有时间和亚秒精度的日期的字符串表示形式。String
返回值
如果成功,则返回 DateTime64 值,否则返回 NULL。 DateTime64 或 NULL
示例
使用示例
toDateTime64OrZero
引入于: v20.1
将输入值转换为 DateTime64 类型的值,但如果收到无效参数,则返回 DateTime64 的下边界。与 toDateTime64 相同,但如果收到无效参数,则返回 DateTime64 的下边界。
参见
语法
参数
x— 带有时间和亚秒精度的日期的字符串表示形式。String
返回值
如果成功,则返回 DateTime64 值,否则返回 DateTime64 的下边界 (1970-01-01 00:00:00.000)。 DateTime64
示例
使用示例
toDateTimeOrDefault
引入于:v21.11
类似于 toDateTime,但如果失败,则返回默认值,该值是第三个参数(如果指定),或者 DateTime 的下边界。
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。String或(U)Int*或Float*timezone— 可选。时区。Stringdefault— 可选。如果解析不成功,则返回的默认值。DateTime
返回值
如果成功,则返回 DateTime 类型的值,否则返回传递的默认值或 1970-01-01 00:00:00(如果未传递)。 DateTime
示例
成功转换
转换失败
toDateTimeOrNull
引入于:v1.1
将输入值转换为 DateTime 类型的值,但如果收到无效参数,则返回 NULL。与 toDateTime 相同,但如果收到无效参数,则返回 NULL。
语法
参数
x— 带有时间的日期的字符串表示形式。String
返回值
如果成功,则返回 DateTime 值,否则返回 NULL。 DateTime 或 NULL
示例
使用示例
toDateTimeOrZero
引入于:v1.1
将输入值转换为 DateTime 类型的值,如果接收到无效参数,则返回 DateTime 的下界。与 toDateTime 相同,但如果接收到无效参数,则返回 DateTime 的下界。
语法
参数
x— 带有时间的日期的字符串表示形式。String
返回值
如果成功,则返回 DateTime 值,否则返回 DateTime 的下界 (1970-01-01 00:00:00)。 DateTime
示例
使用示例
toDecimal128
引入于:v18.12
将输入值转换为具有比例因子 S 的 Decimal(38, S) 类型的值。如果发生错误,则抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- 类型为 Float* 的值或字符串表示形式。
不支持的参数
- 类型为 Float* 的值
NaN和Inf的字符串表示形式(不区分大小写)。 - 二进制和十六进制值的字符串表示形式,例如
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。您可以使用 String 输入,以便操作使用底层的整数类型:toDecimal128('1.15', 2) = 1.15
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。ExpressionS— 比例因子参数,介于 0 和 38 之间,指定数字的小数部分可以有多少位。UInt8
返回值
如果成功,则返回 Decimal(38, S) 类型的值 Decimal128(S)
示例
使用示例
toDecimal128OrDefault
引入于:v21.11
与 toDecimal128 类似,此函数将输入值转换为 Decimal(38, S) 类型的值,但在发生错误时返回默认值。
语法
参数
expr— 数字的字符串表示形式。StringS— 比例因子参数,介于 0 和 38 之间,指定数字的小数部分可以有多少位。UInt8default— 可选。如果解析为 Decimal128(S) 类型失败,则返回的默认值。Decimal128(S)
返回值
如果成功,则返回 Decimal(38, S) 类型的值,否则返回传递的默认值或 0(如果未传递)。 Decimal128(S)
示例
成功转换
转换失败
toDecimal128OrNull
引入于: v20.1
将输入值转换为 Decimal(38, S) 类型的值,但在发生错误时返回 NULL。与 toDecimal128 类似,但在转换错误时返回 NULL 而不是抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- 类型为 Float* 的值或字符串表示形式。
不支持的参数(返回 NULL)
- 类型为 Float* 的值
NaN和Inf的字符串表示形式(不区分大小写)。 - 二进制和十六进制值的字符串表示形式。
- 超过
Decimal128边界:(-1*10^(38 - S), 1*10^(38 - S))的值。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。ExpressionS— 比例因子参数,介于 0 和 38 之间,指定数字的小数部分可以有多少位。UInt8
返回值
如果成功,则返回 Decimal(38, S) 类型的值,否则返回 NULL。 Decimal128(S) 或 NULL
示例
使用示例
toDecimal128OrZero
引入于: v20.1
将输入值转换为 Decimal(38, S) 类型的值,但在发生错误时返回 0。与 toDecimal128 类似,但在转换错误时返回 0 而不是抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- 类型为 Float* 的值或字符串表示形式。
不支持的参数(返回 0)
- 类型为 Float* 的值
NaN和Inf的字符串表示形式(不区分大小写)。 - 二进制和十六进制值的字符串表示形式。
如果输入值超过 Decimal128 的边界:(-1*10^(38 - S), 1*10^(38 - S)),则该函数返回 0。
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。ExpressionS— 比例因子参数,介于 0 和 38 之间,指定数字的小数部分可以有多少位。UInt8
返回值
如果成功,则返回 Decimal(38, S) 类型的值,否则返回 0。 Decimal128(S)
示例
基本用法
toDecimal256
引入于:v20.8
将输入值转换为具有比例因子 S 的 Decimal(76, S) 类型的值。如果发生错误,则抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- 类型为 Float* 的值或字符串表示形式。
不支持的参数
- 类型为 Float* 的值
NaN和Inf的字符串表示形式(不区分大小写)。 - 二进制和十六进制值的字符串表示形式,例如
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。您可以使用 String 输入,以便操作使用底层的整数类型:toDecimal256('1.15', 2) = 1.15
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。ExpressionS— 比例因子参数,介于 0 和 76 之间,指定数字的小数部分可以有多少位。UInt8
返回值
返回 Decimal(76, S) 类型的值。 Decimal256(S)
示例
使用示例
toDecimal256OrDefault
引入于:v21.11
与 toDecimal256 类似,此函数将输入值转换为 Decimal(76, S) 类型的值,但在发生错误时返回默认值。
语法
参数
expr— 数字的字符串表示形式。StringS— 比例因子参数,介于 0 和 76 之间,指定数字的小数部分可以有多少位。UInt8default— 可选。如果解析为 Decimal256(S) 类型失败,则返回的默认值。Decimal256(S)
返回值
如果成功,则返回 Decimal(76, S) 类型的值,否则返回传递的默认值或 0(如果未传递)。 Decimal256(S)
示例
成功转换
转换失败
toDecimal256OrNull
引入于:v20.8
将输入值转换为 Decimal(76, S) 类型的值,但在发生错误时返回 NULL。与 toDecimal256 类似,但在转换错误时返回 NULL 而不是抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- 类型为 Float* 的值或字符串表示形式。
不支持的参数(返回 NULL)
- 类型为 Float* 的值
NaN和Inf的字符串表示形式(不区分大小写)。 - 二进制和十六进制值的字符串表示形式。
- 超过
Decimal256边界:(-1 * 10^(76 - S), 1 * 10^(76 - S))的值。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。ExpressionS— 比例因子参数,介于 0 和 76 之间,指定数字的小数部分可以有多少位。UInt8
返回值
如果成功,则返回 Decimal(76, S) 类型的值,否则返回 NULL。 Decimal256(S) 或 NULL
示例
使用示例
toDecimal256OrZero
引入于:v20.8
将输入值转换为 Decimal(76, S) 类型的值,但在发生错误时返回 0。与 toDecimal256 类似,但在转换错误时返回 0 而不是抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- 类型为 Float* 的值或字符串表示形式。
不支持的参数(返回 0)
- 类型为 Float* 的值
NaN和Inf的字符串表示形式(不区分大小写)。 - 二进制和十六进制值的字符串表示形式。
如果输入值超过 Decimal256 的边界:(-1*10^(76 - S), 1*10^(76 - S)),则该函数返回 0。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。ExpressionS— 比例因子参数,介于 0 和 76 之间,指定数字的小数部分可以有多少位。UInt8
返回值
返回 Decimal(76, S) 类型的值,否则返回 0。 Decimal256(S)
示例
使用示例
toDecimal32
引入于:v18.12
将输入值转换为具有比例因子 S 的 Decimal(9, S) 类型的值。如果发生错误,则抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- 类型为 Float* 的值或字符串表示形式。
不支持的参数
- 类型为 Float* 的值
NaN和Inf的字符串表示形式(不区分大小写)。 - 二进制和十六进制值的字符串表示形式,例如
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。您可以使用 String 输入,以便操作使用底层的整数类型:toDecimal32('1.15', 2) = 1.15
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。ExpressionS— 比例因子参数,介于 0 和 9 之间,指定数字的小数部分可以有多少位。UInt8
返回值
返回 Decimal(9, S) 类型的值 Decimal32(S)
示例
使用示例
toDecimal32OrDefault
引入于:v21.11
与 toDecimal32 类似,此函数将输入值转换为 Decimal(9, S) 类型的值,但在发生错误时返回默认值。
语法
参数
expr— 数字的字符串表示形式。StringS— 比例因子参数,介于 0 和 9 之间,指定数字的小数部分可以有多少位。UInt8default— 可选。如果解析为 Decimal32(S) 类型失败,则返回的默认值。Decimal32(S)
返回值
如果成功,则返回 Decimal(9, S) 类型的值,否则返回传递的默认值或 0(如果未传递)。 Decimal32(S)
示例
成功转换
转换失败
toDecimal32OrNull
引入于: v20.1
将输入值转换为 Decimal(9, S) 类型的值,但在发生错误时返回 NULL。与 toDecimal32 类似,但在转换错误时返回 NULL 而不是抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- 类型为 Float* 的值或字符串表示形式。
不支持的参数(返回 NULL)
- 类型为 Float* 的值
NaN和Inf的字符串表示形式(不区分大小写)。 - 二进制和十六进制值的字符串表示形式。
- 超过
Decimal32边界:(-1*10^(9 - S), 1*10^(9 - S))的值。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。ExpressionS— 比例因子参数,介于 0 和 9 之间,指定数字的小数部分可以有多少位。UInt8
返回值
如果成功,则返回 Decimal(9, S) 类型的值,否则返回 NULL。 Decimal32(S) 或 NULL
示例
使用示例
toDecimal32OrZero
引入于: v20.1
将输入值转换为 Decimal(9, S) 类型的值,但在发生错误时返回 0。与 toDecimal32 类似,但在转换错误时返回 0 而不是抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- 类型为 Float* 的值或字符串表示形式。
不支持的参数(返回 0)
- 类型为 Float* 的值
NaN和Inf的字符串表示形式(不区分大小写)。 - 二进制和十六进制值的字符串表示形式。
如果输入值超过 Decimal32 的边界:(-1*10^(9 - S), 1*10^(9 - S)),则该函数返回 0。
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。ExpressionS— 比例因子参数,介于 0 和 9 之间,指定数字的小数部分可以有多少位。UInt8
返回值
如果成功,则返回 Decimal(9, S) 值,否则返回 0。 Decimal32(S)
示例
使用示例
toDecimal64
引入于:v18.12
将输入值转换为类型为 Decimal(18, S) 且刻度为 S 的值。 如果发生错误,则抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- 类型为 Float* 的值或字符串表示形式。
不支持的参数
- 类型为 Float* 的值
NaN和Inf的字符串表示形式(不区分大小写)。 - 二进制和十六进制值的字符串表示形式,例如
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。 您可以使用 String 输入,以便操作使用底层的整数类型:toDecimal64('1.15', 2) = 1.15
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。ExpressionS— 介于 0 和 18 之间的刻度参数,指定数字的小数部分可以有多少位。UInt8
返回值
返回一个十进制值。 Decimal(18, S)
示例
使用示例
toDecimal64OrDefault
引入于:v21.11
与 toDecimal64 类似,此函数将输入值转换为类型为 Decimal(18, S) 的值,但在发生错误时返回默认值。
语法
参数
expr— 数字的字符串表示形式。StringS— 介于 0 和 18 之间的刻度参数,指定数字的小数部分可以有多少位。UInt8default— 可选。 如果解析为 Decimal64(S) 类型不成功,则返回的默认值。Decimal64(S)
返回值
如果成功,则返回 Decimal(18, S) 值,否则返回传递的默认值或 0(如果未传递)。 Decimal64(S)
示例
成功转换
转换失败
toDecimal64OrNull
引入于: v20.1
将输入值转换为类型为 Decimal(18, S) 的值,但在发生错误时返回 NULL。 与 toDecimal64 类似,但在转换错误时返回 NULL 而不是抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- 类型为 Float* 的值或字符串表示形式。
不支持的参数(返回 NULL)
- 类型为 Float* 的值
NaN和Inf的字符串表示形式(不区分大小写)。 - 二进制和十六进制值的字符串表示形式。
- 超出
Decimal64范围的值:(-1*10^(18 - S), 1*10^(18 - S))。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。ExpressionS— 介于 0 和 18 之间的刻度参数,指定数字的小数部分可以有多少位。UInt8
返回值
如果成功,则返回 Decimal(18, S) 值,否则返回 NULL。 Decimal64(S) 或 NULL
示例
使用示例
toDecimal64OrZero
引入于: v20.1
将输入值转换为类型为 Decimal(18, S) 的值,但在发生错误时返回 0。 与 toDecimal64 类似,但在转换错误时返回 0 而不是抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- 类型为 Float* 的值或字符串表示形式。
不支持的参数(返回 0)
- 类型为 Float* 的值
NaN和Inf的字符串表示形式(不区分大小写)。 - 二进制和十六进制值的字符串表示形式。
如果输入值超过 Decimal64 的范围:(-1*10^(18 - S), 1*10^(18 - S)),则该函数返回 0。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。ExpressionS— 介于 0 和 18 之间的刻度参数,指定数字的小数部分可以有多少位。UInt8
返回值
如果成功,则返回 Decimal(18, S) 值,否则返回 0。 Decimal64(S)
示例
使用示例
toDecimalString
引入于: v23.3
将数值转换为具有指定小数位数的字符串。
该函数将输入值四舍五入到指定的位数。 如果输入值的小数位数少于请求的位数,则结果将用零填充以达到指定的精确小数位数。
语法
参数
number— 要转换为字符串的数值。 可以是任何数值类型 (Int, UInt, Float, Decimal)。Int8或Int16或Int32或Int64或UInt8或UInt16或UInt32或UInt64或Float32或Float64或Decimalscale— 要在小数部分显示的位数。 如果需要,结果将四舍五入。UInt8
返回值
返回具有指定小数位数的数字的字符串表示形式。 String
示例
四舍五入并格式化数字
用零填充
不同的数值类型
toFixedString
引入于:v1.1
将 String 参数转换为 FixedString(N) 类型(固定长度为 N 的字符串)。
如果字符串的字节数少于 N,则在右侧用空字节填充。 如果字符串的字节数多于 N,则会抛出异常。
语法
参数
s— 要转换的字符串。StringN— 结果 FixedString 的长度。const UInt*
返回值
返回长度为 N 的 FixedString。 FixedString(N)
示例
使用示例
toFloat32
引入于:v1.1
将输入值转换为类型为 Float32 的值。 如果发生错误,则抛出异常。
支持的参数
- (U)Int* 类型的值。
- (U)Int8/16/32/128/256 的字符串表示形式。
- Float* 类型的值,包括
NaN和Inf。 - Float* 的字符串表示形式,包括
NaN和Inf(不区分大小写)。
不支持的参数
- 二进制和十六进制值的字符串表示形式,例如
SELECT toFloat32('0xc0fe');。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 32 位浮点值。 Float32
示例
使用示例
toFloat32OrDefault
引入于:v21.11
与 toFloat32 类似,此函数将输入值转换为类型为 Float32 的值,但在发生错误时返回默认值。 如果未传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回 Float32 类型的值,否则返回传递的默认值或 0(如果未传递)。 Float32
示例
成功转换
转换失败
toFloat32OrNull
引入于:v1.1
将输入值转换为类型为 Float32 的值,但在发生错误时返回 NULL。 与 toFloat32 类似,但在转换错误时返回 NULL 而不是抛出异常。
支持的参数
- (U)Int* 类型的值。
- (U)Int8/16/32/128/256 的字符串表示形式。
- Float* 类型的值,包括
NaN和Inf。 - Float* 的字符串表示形式,包括
NaN和Inf(不区分大小写)。
不支持的参数(返回 NULL)
- 二进制和十六进制值的字符串表示形式,例如
SELECT toFloat32OrNull('0xc0fe');。 - 无效的字符串格式。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
如果成功,则返回 Float32 值,否则返回 NULL。 Float32 或 NULL
示例
使用示例
toFloat32OrZero
引入于:v1.1
将输入值转换为类型为 Float32 的值,但在发生错误时返回 0。 与 toFloat32 类似,但在转换错误时返回 0 而不是抛出异常。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 32 位浮点值,如果成功,否则返回 0。 Float32
示例
使用示例
toFloat64
引入于:v1.1
将输入值转换为类型为 Float64 的值。 如果发生错误,则抛出异常。
支持的参数
- (U)Int* 类型的值。
- (U)Int8/16/32/128/256 的字符串表示形式。
- Float* 类型的值,包括
NaN和Inf。 - Float* 类型的字符串表示形式,包括
NaN和Inf(不区分大小写)。
不支持的参数
- 二进制和十六进制值的字符串表示形式,例如
SELECT toFloat64('0xc0fe');。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 64 位浮点值。 Float64
示例
使用示例
toFloat64OrDefault
引入于:v21.11
与 toFloat64 类似,此函数将输入值转换为类型为 Float64 的值,但在发生错误时返回默认值。 如果未传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回 Float64 类型的值,否则返回传递的默认值或 0(如果未传递)。 Float64
示例
成功转换
转换失败
toFloat64OrNull
引入于:v1.1
将输入值转换为类型为 Float64 的值,但在发生错误时返回 NULL。 与 toFloat64 类似,但在转换错误时返回 NULL 而不是抛出异常。
支持的参数
- (U)Int* 类型的值。
- (U)Int8/16/32/128/256 的字符串表示形式。
- Float* 类型的值,包括
NaN和Inf。 - Float* 类型的字符串表示形式,包括
NaN和Inf(不区分大小写)。
不支持的参数(返回 NULL)
- 二进制和十六进制值的字符串表示形式,例如
SELECT toFloat64OrNull('0xc0fe');。 - 无效的字符串格式。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
如果成功,则返回 Float64 值,否则返回 NULL。 Float64 或 NULL
示例
使用示例
toFloat64OrZero
引入于:v1.1
将输入值转换为类型为 Float64 的值,但在发生错误时返回 0。 与 toFloat64 类似,但在转换错误时返回 0 而不是抛出异常。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
如果成功,则返回一个 64 位浮点数值,否则返回 0。 Float64
示例
使用示例
toInt128
引入于:v1.1
将输入值转换为 Int128 类型的值。如果发生错误,则抛出异常。该函数使用向零舍入,这意味着它会截断数字的小数部分。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- Float* 类型的值。
不支持的参数
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt128('0xc0fe');。
如果输入值无法在 Int128 的范围内表示,则结果会溢出或下溢。这不被视为错误。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 128 位整数值。 Int128
示例
使用示例
toInt128OrDefault
引入于:v21.11
类似于 toInt128,此函数将输入值转换为 Int128 类型的值,但在发生错误时返回默认值。如果未传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回一个 Int128 类型的值,否则返回传递的默认值(如果已传递),否则返回 0。 Int128
示例
成功转换
转换失败
toInt128OrNull
引入于:v20.8
类似于 toInt128,此函数将输入值转换为 Int128 类型的值,但在发生错误时返回 NULL。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 NULL)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt128OrNull('0xc0fe');。
如果输入值无法在 Int128 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 Int128 类型的值,否则如果转换不成功,则返回 NULL。 Int128 或 NULL
示例
使用示例
toInt128OrZero
引入于:v20.8
将输入值转换为 Int128 类型,但在发生错误时返回 0。类似于 toInt128,但返回 0 而不是抛出异常。
参见
语法
参数
返回值
返回转换后的输入值,否则如果转换失败,则返回 0。 Int128
示例
使用示例
转换失败返回零
toInt16
引入于:v1.1
将输入值转换为 Int16 类型的值。如果发生错误,则抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- Float* 类型的值。
不支持的参数
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt16('0xc0fe');。
如果输入值无法在 Int16 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。例如:SELECT toInt16(32768) == -32768;。
该函数使用 向零舍入,这意味着它会截断数字的小数部分。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 16 位整数值。 Int16
示例
使用示例
toInt16OrDefault
引入于:v21.11
类似于 toInt16,此函数将输入值转换为 Int16 类型的值,但在发生错误时返回默认值。如果未传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回一个 Int16 类型的值,否则返回传递的默认值(如果已传递),否则返回 0。 Int16
示例
成功转换
转换失败
toInt16OrNull
引入于:v1.1
类似于 toInt16,此函数将输入值转换为 Int16 类型的值,但在发生错误时返回 NULL。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 NULL)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt16OrNull('0xc0fe');。
如果输入值无法在 Int16 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 Int16 类型的值,否则如果转换不成功,则返回 NULL。 Int16 或 NULL
示例
使用示例
toInt16OrZero
引入于:v1.1
类似于 toInt16,此函数将输入值转换为 Int16 类型的值,但在发生错误时返回 0。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 0)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt16OrZero('0xc0fe');。
如果输入值无法在 Int16 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 Int16 类型的值,否则如果转换不成功,则返回 0。 Int16
示例
使用示例
toInt256
引入于:v1.1
将输入值转换为 Int256 类型的值。如果发生错误,则抛出异常。该函数使用向零舍入,这意味着它会截断数字的小数部分。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- Float* 类型的值。
不支持的参数
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt256('0xc0fe');。
如果输入值无法在 Int256 的范围内表示,则结果会溢出或下溢。这不被视为错误。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 256 位整数值。 Int256
示例
使用示例
toInt256OrDefault
引入于:v21.11
类似于 toInt256,此函数将输入值转换为 Int256 类型的值,但在发生错误时返回默认值。如果未传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回一个 Int256 类型的值,否则返回传递的默认值(如果已传递),否则返回 0。 Int256
示例
成功转换
转换失败
toInt256OrNull
引入于:v20.8
类似于 toInt256,此函数将输入值转换为 Int256 类型的值,但在发生错误时返回 NULL。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 NULL)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt256OrNull('0xc0fe');。
如果输入值无法在 Int256 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 Int256 类型的值,否则如果转换不成功,则返回 NULL。 Int256 或 NULL
示例
使用示例
toInt256OrZero
引入于:v20.8
将输入值转换为 Int256 类型,但在发生错误时返回 0。类似于 toInt256,但返回 0 而不是抛出异常。
参见
语法
参数
返回值
返回转换后的输入值,否则如果转换失败,则返回 0。 Int256
示例
使用示例
转换失败返回零
toInt32
引入于:v1.1
将输入值转换为 Int32 类型的值。如果发生错误,则抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- Float* 类型的值。
不支持的参数
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt32('0xc0fe');。
如果输入值无法在 Int32 的范围内表示,则结果会溢出或下溢。这不被视为错误。例如:SELECT toInt32(2147483648) == -2147483648;
该函数使用 向零舍入,这意味着它会截断数字的小数部分。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 32 位整数值。 Int32
示例
使用示例
toInt32OrDefault
引入于:v21.11
类似于 toInt32,此函数将输入值转换为 Int32 类型的值,但在发生错误时返回默认值。如果未传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回一个 Int32 类型的值,否则返回传递的默认值(如果已传递)或 0(如果未传递)。 Int32
示例
成功转换
转换失败
toInt32OrNull
引入于:v1.1
类似于 toInt32,此函数将输入值转换为 Int32 类型的值,但在发生错误时返回 NULL。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 NULL)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt32OrNull('0xc0fe');。
如果输入值无法在 Int32 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 Int32 类型的值,否则如果转换不成功,则返回 NULL。 Int32 或 NULL
示例
使用示例
toInt32OrZero
引入于:v1.1
类似于 toInt32,此函数将输入值转换为 Int32 类型的值,但在发生错误时返回 0。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 0)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt32OrZero('0xc0fe');。
如果输入值无法在 Int32 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 Int32 类型的值,否则如果转换不成功,则返回 0。 Int32
示例
使用示例
toInt64
引入于:v1.1
将输入值转换为 Int64 类型的值。如果发生错误,则抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- Float* 类型的值。
不支持的参数
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt64('0xc0fe');。
如果输入值无法在 Int64 的范围内表示,则结果会溢出或下溢。这不被视为错误。例如:SELECT toInt64(9223372036854775808) == -9223372036854775808;
该函数使用 向零舍入,这意味着它会截断数字的小数部分。
参见
语法
参数
expr— 返回一个数字或数字的字符串表示形式的表达式。支持:(U)Int* 类型的值或字符串表示形式,Float* 类型的值。不支持:Float* 值的字符串表示形式,包括 NaN 和 Inf,二进制和十六进制值的字符串表示形式。Expression
返回值
返回一个 64 位整数值。 Int64
示例
使用示例
toInt64OrDefault
引入于:v21.11
类似于 toInt64,此函数将输入值转换为 Int64 类型的值,但在发生错误时返回默认值。如果未传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回 Int64 类型的值,否则返回传递的默认值(如果已传递),否则返回 0。 Int64
示例
成功转换
转换失败
toInt64OrNull
引入于:v1.1
类似于 toInt64,此函数将输入值转换为 Int64 类型的值,但在发生错误时返回 NULL。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 NULL)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt64OrNull('0xc0fe');。
如果输入值无法在 Int64 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回 Int64 类型的值,否则如果转换不成功则返回 NULL。 Int64 或 NULL
示例
使用示例
toInt64OrZero
引入于:v1.1
将输入值转换为 Int64 类型,但在发生错误时返回 0。类似于 toInt64,但返回 0 而不是抛出异常。
参见
语法
参数
返回值
返回转换后的输入值,否则如果转换失败则返回 0。 Int64
示例
使用示例
转换失败返回零
toInt8
引入于:v1.1
将输入值转换为 Int8 类型的值。如果发生错误,则抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- Float* 类型的值。
不支持的参数
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt8('0xc0fe');。
如果输入值无法在 Int8 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。例如:SELECT toInt8(128) == -128;。
该函数使用 向零舍入,这意味着它会截断数字的小数部分。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 8 位整数值。 Int8
示例
使用示例
toInt8OrDefault
引入于:v21.11
类似于 toInt8,此函数将输入值转换为 Int8 类型的值,但在发生错误时返回默认值。如果未传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回 Int8 类型的值,否则返回传递的默认值(如果已传递),否则返回 0。 Int8
示例
成功转换
转换失败
toInt8OrNull
引入于:v1.1
类似于 toInt8,此函数将输入值转换为 Int8 类型的值,但在发生错误时返回 NULL。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 NULL)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt8OrNull('0xc0fe');。
如果输入值无法在 Int8 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回 Int8 类型的值,否则如果转换不成功则返回 NULL。 Int8 或 NULL
示例
使用示例
toInt8OrZero
引入于:v1.1
类似于 toInt8,此函数将输入值转换为 Int8 类型的值,但在发生错误时返回 0。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 0)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toInt8OrZero('0xc0fe');。
如果输入值无法在 Int8 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回 Int8 类型的值,否则如果转换不成功则返回 0。 Int8
示例
使用示例
toInterval
引入于: v25.4
从数字值和单位字符串创建一个 Interval 值。
此函数提供了一种统一的方式来创建不同类型(秒、分钟、小时、天、周、月、季度、年)的间隔,只需通过指定单位作为字符串参数即可。单位字符串不区分大小写。
这等效于调用特定类型的函数,如 toIntervalSecond、toIntervalMinute、toIntervalDay 等,但允许将单位动态地指定为字符串参数。
语法
参数
value— 表示单位数量的数字值。可以是任何数字类型。Int8或Int16或Int32或Int64或UInt8或UInt16或UInt32或UInt64或Float32或Float64unit— 时间单位。必须是常量字符串。有效值:'nanosecond'、'microsecond'、'millisecond'、'second'、'minute'、'hour'、'day'、'week'、'month'、'quarter'、'year'。String
返回值
返回指定类型的 Interval 值。结果类型取决于单位:IntervalNanosecond、IntervalMicrosecond、IntervalMillisecond、IntervalSecond、IntervalMinute、IntervalHour、IntervalDay、IntervalWeek、IntervalMonth、IntervalQuarter 或 IntervalYear。 Interval
示例
使用不同的单位创建间隔
在日期算术中使用间隔
动态间隔创建
toIntervalDay
引入于:v1.1
返回一个包含 n 天的间隔,数据类型为 IntervalDay。
语法
参数
返回值
返回一个包含 n 天的间隔。 Interval
示例
使用示例
toIntervalHour
引入于:v1.1
返回一个包含 n 小时的间隔,数据类型为 IntervalHour。
语法
参数
返回值
返回一个包含 n 小时的间隔。 Interval
示例
使用示例
toIntervalMicrosecond
引入于:v22.6
返回一个包含 n 微秒的间隔,数据类型为 IntervalMicrosecond。
语法
参数
返回值
返回一个包含 n 微秒的间隔。 Interval
示例
使用示例
toIntervalMillisecond
引入于:v22.6
返回一个包含 n 毫秒的间隔,数据类型为 IntervalMillisecond。
语法
参数
返回值
返回一个包含 n 毫秒的间隔。 Interval
示例
使用示例
toIntervalMinute
引入于:v1.1
返回一个包含 n 分钟的间隔,数据类型为 IntervalMinute。
语法
参数
返回值
返回一个包含 n 分钟的间隔。 Interval
示例
使用示例
toIntervalMonth
引入于:v1.1
返回一个包含 n 个月的间隔,数据类型为 IntervalMonth。
语法
参数
返回值
返回一个包含 n 个月的间隔。 Interval
示例
使用示例
toIntervalNanosecond
引入于:v22.6
返回一个包含 n 纳秒的间隔,数据类型为 IntervalNanosecond。
语法
参数
返回值
返回一个包含 n 纳秒的间隔。 Interval
示例
使用示例
toIntervalQuarter
引入于:v1.1
返回一个包含 n 个季度的间隔,数据类型为 IntervalQuarter。
语法
参数
返回值
返回一个 n 个季度的区间。 Interval
示例
使用示例
toIntervalSecond
引入于:v1.1
返回一个 n 秒的区间,数据类型为 IntervalSecond。
语法
参数
返回值
返回一个 n 秒的区间。 Interval
示例
使用示例
toIntervalWeek
引入于:v1.1
返回一个 n 周的区间,数据类型为 IntervalWeek。
语法
参数
返回值
返回一个 n 周的区间。 Interval
示例
使用示例
toIntervalYear
引入于:v1.1
返回一个 n 年的区间,数据类型为 IntervalYear。
语法
参数
返回值
返回一个 n 年的区间。 Interval
示例
使用示例
toLowCardinality
引入于:v18.12
将输入参数转换为相同数据类型的 LowCardinality 版本。
要从 LowCardinality 数据类型转换为常规数据类型,请使用 CAST 函数。 例如:CAST(x AS String)。
语法
参数
返回值
返回转换为 LowCardinality 数据类型的输入值。 LowCardinality
示例
使用示例
toString
引入于:v1.1
将值转换为其字符串表示形式。 对于 DateTime 参数,该函数可以接受第二个 String 参数,其中包含时区名称。
语法
参数
返回值
返回输入值的字符串表示形式。 String
示例
使用示例
toStringCutToZero
引入于:v1.1
接受一个 String 或 FixedString 参数,并返回一个 String,其中包含原始字符串的副本,该副本在第一个空字节处被截断。
空字节 (\0) 被视为字符串终止符。 此函数对于处理 C 风格的字符串或在空字节标记有意义内容结尾的二进制数据非常有用。
语法
参数
s— 要处理的 String 或 FixedString。String或FixedString
返回值
返回一个包含第一个空字节之前字符的 String。 String
示例
使用示例
toTime
引入于:v1.1
将输入值转换为类型 Time。 支持从 String、FixedString、DateTime 或表示午夜后秒数的数字类型进行转换。
语法
参数
x— 要转换的输入值。String或FixedString或DateTime或(U)Int*或Float*
返回值
返回转换后的值。 Time
示例
String 到 Time 转换
DateTime 到 Time 转换
Integer 到 Time 转换
toTime64
引入于: v25.6
将输入值转换为类型 Time64。 支持从 String、FixedString、DateTime64 或表示午夜后微秒数的数字类型进行转换。 为时间值提供微秒级精度。
语法
参数
x— 输入值进行转换。String或FixedString或DateTime64或(U)Int*或Float*
返回值
返回具有微秒精度的转换后的输入值。 Time64(6)
示例
String 到 Time64 转换
DateTime64 到 Time64 转换
Integer 到 Time64 转换
toTime64OrNull
引入于: v25.6
将输入值转换为类型 Time64 的值,但在发生错误时返回 NULL。 类似于 toTime64,但在转换错误时返回 NULL 而不是抛出异常。
参见
语法
参数
x— 具有亚秒精度的时间的字符串表示形式。String
返回值
如果成功,则返回 Time64 值,否则返回 NULL。 Time64 或 NULL
示例
使用示例
toTime64OrZero
引入于: v25.6
将输入值转换为类型 Time64 的值,但在发生错误时返回 00:00:00.000。 类似于 toTime64,但在转换错误时返回 00:00:00.000 而不是抛出异常。
语法
参数
x— 具有亚秒精度的时间的字符串表示形式。String
返回值
如果成功,则返回 Time64 值,否则返回 00:00:00.000。 Time64
示例
使用示例
toTimeOrNull
引入于:v1.1
将输入值转换为类型 Time 的值,但在发生错误时返回 NULL。 类似于 toTime,但在转换错误时返回 NULL 而不是抛出异常。
参见
语法
参数
x— 时间的字符串表示形式。String
返回值
如果成功,则返回 Time 值,否则返回 NULL。 Time 或 NULL
示例
使用示例
toTimeOrZero
引入于:v1.1
将输入值转换为类型 Time 的值,但在发生错误时返回 00:00:00。 类似于 toTime,但在转换错误时返回 00:00:00 而不是抛出异常。
语法
参数
x— 时间的字符串表示形式。String
返回值
如果成功,则返回 Time 值,否则返回 00:00:00。 Time
示例
使用示例
toUInt128
引入于:v1.1
将输入值转换为类型 UInt128。 发生错误时抛出异常。 该函数使用朝零舍入,这意味着它会截断数字的小数部分。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- Float* 类型的值。
不支持的参数
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toUInt128('0xc0fe');。
如果输入值无法在 UInt128 的范围内表示,则结果会溢出或下溢。 这不被视为错误。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 128 位无符号整数值。 UInt128
示例
使用示例
toUInt128OrDefault
引入于:v21.11
类似于 toUInt128,此函数将输入值转换为类型 UInt128 的值,但在发生错误时返回默认值。 如果未传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回 UInt128 类型的值,否则返回传递的默认值(如果已传递),否则返回 0。
示例
成功转换
转换失败
toUInt128OrNull
引入于:v21.6
类似于 toUInt128,此函数将输入值转换为类型 UInt128 的值,但在发生错误时返回 NULL。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 NULL)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 二进制和十六进制值的字符串表示形式,例如
SELECT toUInt128OrNull('0xc0fe');。
如果输入值无法在 UInt128 的范围内表示,则会发生结果溢出或下溢。 这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回 UInt128 类型的值,否则如果转换不成功,则返回 NULL。 UInt128 或 NULL
示例
使用示例
toUInt128OrZero
引入于:v1.1
类似于 toUInt128,此函数将输入值转换为类型 UInt128 的值,但在发生错误时返回 0。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 0)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示的二进制和十六进制值,例如
SELECT toUInt128OrZero('0xc0fe');。
如果输入值无法在 UInt128 的范围内表示,则会发生结果溢出或下溢。 这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回 UInt128 类型的值,否则如果转换不成功则返回 0。 UInt128
示例
使用示例
toUInt16
引入于:v1.1
将输入值转换为 UInt16 类型的值。 如果发生错误,则抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- Float* 类型的值。
不支持的参数
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示的二进制和十六进制值,例如
SELECT toUInt16('0xc0fe');。
如果输入值无法在 UInt16 的范围内表示,则结果会发生溢出或下溢。 这不被视为错误。 例如:SELECT toUInt16(65536) == 0;。
该函数使用 向零舍入,这意味着它会截断数字的小数部分。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 16 位无符号整数值。 UInt16
示例
使用示例
toUInt16OrDefault
引入于:v21.11
类似于 toUInt16,此函数将输入值转换为 UInt16 类型的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回一个 UInt16 类型的值,否则返回传递的默认值(如果已传递),否则返回 0。 UInt16
示例
成功转换
转换失败
toUInt16OrNull
引入于:v1.1
类似于 toUInt16,此函数将输入值转换为 UInt16 类型的值,但在发生错误时返回 NULL。
支持的参数
- (U)Int8/16/32/128/256 的字符串表示形式。
不支持的参数(返回 NULL)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示的二进制和十六进制值,例如
SELECT toUInt16OrNull('0xc0fe');。
如果输入值无法在 UInt16 的范围内表示,则结果会发生溢出或下溢。 这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 UInt16 类型的值,否则如果转换不成功则返回 NULL。 UInt16 或 NULL
示例
使用示例
toUInt16OrZero
引入于:v1.1
类似于 toUInt16,此函数将输入值转换为 UInt16 类型的值,但在发生错误时返回 0。
支持的参数
- (U)Int8/16/32/128/256 的字符串表示形式。
不支持的参数(返回 0)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示的二进制和十六进制值,例如
SELECT toUInt16OrZero('0xc0fe');。
如果输入值无法在 UInt16 的范围内表示,则结果会发生溢出或下溢。 这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 UInt16 类型的值,否则如果转换不成功则返回 0。 UInt16
示例
使用示例
toUInt256
引入于:v1.1
将输入值转换为 UInt256 类型的值。 如果发生错误,则抛出异常。 该函数使用朝零舍入,这意味着它会截断数字的小数部分。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- Float* 类型的值。
不支持的参数
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示的二进制和十六进制值,例如
SELECT toUInt256('0xc0fe');。
如果输入值无法在 UInt256 的范围内表示,则结果会发生溢出或下溢。 这不被视为错误。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 256 位无符号整数值。 UInt256
示例
使用示例
toUInt256OrDefault
引入于:v21.11
类似于 toUInt256,此函数将输入值转换为 UInt256 类型的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回一个 UInt256 类型的值,否则返回传递的默认值(如果已传递),否则返回 0。 UInt256
示例
成功转换
转换失败
toUInt256OrNull
引入于:v20.8
类似于 toUInt256,此函数将输入值转换为 UInt256 类型的值,但在发生错误时返回 NULL。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 NULL)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示的二进制和十六进制值,例如
SELECT toUInt256OrNull('0xc0fe');。
如果输入值无法在 UInt256 的范围内表示,则结果会发生溢出或下溢。 这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 UInt256 类型的值,否则如果转换不成功则返回 NULL。 UInt256 或 NULL
示例
使用示例
toUInt256OrZero
引入于:v20.8
类似于 toUInt256,此函数将输入值转换为 UInt256 类型的值,但在发生错误时返回 0。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 0)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示的二进制和十六进制值,例如
SELECT toUInt256OrZero('0xc0fe');。
如果输入值无法在 UInt256 的范围内表示,则结果会发生溢出或下溢。 这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 UInt256 类型的值,否则如果转换不成功则返回 0。 UInt256
示例
使用示例
toUInt32
引入于:v1.1
将输入值转换为 UInt32 类型的值。 如果发生错误,则抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- Float* 类型的值。
不支持的参数
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示的二进制和十六进制值,例如
SELECT toUInt32('0xc0fe');。
如果输入值无法在 UInt32 的范围内表示,则结果会发生溢出或下溢。 这不被视为错误。 例如:SELECT toUInt32(4294967296) == 0;
该函数使用 向零舍入,这意味着它会截断数字的小数部分。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 32 位无符号整数值。 UInt32
示例
使用示例
toUInt32OrDefault
引入于:v21.11
类似于 toUInt32,此函数将输入值转换为 UInt32 类型的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回一个 UInt32 类型的值,否则返回传递的默认值(如果已传递),否则返回 0。 UInt32
示例
成功转换
转换失败
toUInt32OrNull
引入于:v1.1
类似于 toUInt32,此函数将输入值转换为 UInt32 类型的值,但在发生错误时返回 NULL。
支持的参数
- (U)Int8/16/32/128/256 的字符串表示形式。
不支持的参数(返回 NULL)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示的二进制和十六进制值,例如
SELECT toUInt32OrNull('0xc0fe');。
如果输入值无法在 UInt32 的范围内表示,则结果会发生溢出或下溢。 这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 UInt32 类型的值,否则如果转换不成功则返回 NULL。 UInt32 或 NULL
示例
使用示例
toUInt32OrZero
引入于:v1.1
类似于 toUInt32,此函数将输入值转换为 UInt32 类型的值,但在发生错误时返回 0。
支持的参数
- (U)Int8/16/32/128/256 的字符串表示形式。
不支持的参数(返回 0)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示的二进制和十六进制值,例如
SELECT toUInt32OrZero('0xc0fe');。
如果输入值无法在 UInt32 的范围内表示,则结果会发生溢出或下溢。 这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回一个 UInt32 类型的值,否则如果转换不成功则返回 0。 UInt32
示例
使用示例
toUInt64
引入于:v1.1
将输入值转换为 UInt64 类型的值。 如果发生错误,则抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- Float* 类型的值。
不支持的类型
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示的二进制和十六进制值,例如
SELECT toUInt64('0xc0fe');。
如果输入值无法在 UInt64 的范围内表示,则结果会发生溢出或下溢。 这不被视为错误。 例如:SELECT toUInt64(18446744073709551616) == 0;
该函数使用 向零舍入,这意味着它会截断数字的小数部分。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 64 位无符号整数值。 UInt64
示例
使用示例
toUInt64OrDefault
引入于:v21.11
类似于 toUInt64,此函数将输入值转换为 UInt64 类型的值,但在发生错误时返回默认值。 如果没有传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回一个 UInt64 类型的值,否则返回传递的默认值(如果已传递),否则返回 0。 UInt64
示例
成功转换
转换失败
toUInt64OrNull
引入于:v1.1
类似于 toUInt64,此函数将输入值转换为 UInt64 类型的值,但在发生错误时返回 NULL。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 NULL)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示形式的二进制和十六进制值,例如
SELECT toUInt64OrNull('0xc0fe');。
如果输入值无法在 UInt64 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回 UInt64 类型的值,否则如果转换不成功则返回 NULL。 UInt64 或 NULL
示例
使用示例
toUInt64OrZero
引入于:v1.1
类似于 toUInt64,此函数将输入值转换为 UInt64 类型的值,但在发生错误时返回 0。
支持的参数
- (U)Int* 的字符串表示形式。
不支持的参数(返回 0)
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示形式的二进制和十六进制值,例如
SELECT toUInt64OrZero('0xc0fe');。
如果输入值无法在 UInt64 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回 UInt64 类型的值,否则如果转换不成功则返回 0。 UInt64
示例
使用示例
toUInt8
引入于:v1.1
将输入值转换为 UInt8 类型的值。如果发生错误,则抛出异常。
支持的参数
- 类型为 (U)Int* 的值或字符串表示形式。
- Float* 类型的值。
不支持的参数
- Float* 值的字符串表示形式,包括
NaN和Inf。 - 字符串表示形式的二进制和十六进制值,例如
SELECT toUInt8('0xc0fe');。
如果输入值无法在 UInt8 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。例如:SELECT toUInt8(256) == 0;。
该函数使用 向零舍入,这意味着它会截断数字的小数部分。
参见
语法
参数
expr— 返回数字或数字字符串表示形式的表达式。Expression
返回值
返回一个 8 位无符号整数值。 UInt8
示例
使用示例
toUInt8OrDefault
引入于:v21.11
类似于 toUInt8,此函数将输入值转换为 UInt8 类型的值,但在发生错误时返回默认值。如果未传递 default 值,则在发生错误时返回 0。
语法
参数
返回值
如果成功,则返回 UInt8 类型的值,否则返回传递的默认值,或者如果没有传递默认值,则返回 0。 UInt8
示例
成功转换
转换失败
toUInt8OrNull
引入于:v1.1
类似于 toUInt8,此函数将输入值转换为 UInt8 类型的值,但在发生错误时返回 NULL。
支持的参数
- (U)Int8/16/32/128/256 的字符串表示形式。
不支持的参数(返回 NULL)
- 字符串表示形式的普通 Float* 值,包括
NaN和Inf。 - 字符串表示形式的二进制和十六进制值,例如
SELECT toUInt8OrNull('0xc0fe');。
如果输入值无法在 UInt8 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回 UInt8 类型的值,否则如果转换不成功则返回 NULL。 UInt8 或 NULL
示例
使用示例
toUInt8OrZero
引入于:v1.1
类似于 toUInt8,此函数将输入值转换为 UInt8 类型的值,但在发生错误时返回 0。
支持的参数
- (U)Int8/16/32/128/256 的字符串表示形式。
不支持的参数(返回 0)
- 字符串表示形式的普通 Float* 值,包括
NaN和Inf。 - 字符串表示形式的二进制和十六进制值,例如
SELECT toUInt8OrZero('0xc0fe');。
如果输入值无法在 UInt8 的范围内表示,则结果会发生溢出或下溢。这不被视为错误。
参见
语法
参数
x— 数字的字符串表示形式。String
返回值
返回 UInt8 类型的值,否则如果转换不成功则返回 0。 UInt8
示例
使用示例
toUUID
引入于:v1.1
将字符串值转换为 UUID 值。
语法
参数
string— 作为字符串的 UUID。String或FixedString
返回值
从 UUID 的字符串表示形式返回 UUID。 UUID
示例
使用示例
toUUIDOrZero
引入于:v20.12
将输入值转换为 UUID 类型的值,但在发生错误时返回零 UUID。类似于 toUUID,但在转换错误时返回零 UUID (00000000-0000-0000-0000-000000000000),而不是抛出异常。
支持的参数
- 标准格式 (8-4-4-4-12 十六进制数字) 的 UUID 字符串表示形式。
- 不带连字符的 UUID 字符串表示形式 (32 个十六进制数字)。
不支持的参数 (返回零 UUID)
- 无效的字符串格式。
- 非字符串类型。
语法
参数
x— UUID 的字符串表示形式。String
返回值
如果成功,则返回 UUID 值,否则返回零 UUID (00000000-0000-0000-0000-000000000000)。 UUID
示例
使用示例
toUnixTimestamp64Micro
引入于:v20.5
将 DateTime64 转换为具有固定微秒精度的 Int64 值。根据其精度对输入值进行适当的放大或缩小。
输出值相对于 UTC,而不是输入值的时区。
语法
参数
value— 具有任何精度的 DateTime64 值。DateTime64
返回值
返回微秒中的 Unix 时间戳。 Int64
示例
使用示例
toUnixTimestamp64Milli
引入于:v20.5
将 DateTime64 转换为具有固定毫秒精度的 Int64 值。根据其精度对输入值进行适当的放大或缩小。
输出值相对于 UTC,而不是输入值的时区。
语法
参数
value— 具有任何精度的 DateTime64 值。DateTime64
返回值
返回毫秒中的 Unix 时间戳。 Int64
示例
使用示例
toUnixTimestamp64Nano
引入于:v20.5
将 DateTime64 转换为具有固定纳秒精度的 Int64 值。根据其精度对输入值进行适当的放大或缩小。
输出值相对于 UTC,而不是输入值的时区。
语法
参数
value— 具有任何精度的 DateTime64 值。DateTime64
返回值
返回纳秒中的 Unix 时间戳。 Int64
示例
使用示例
toUnixTimestamp64Second
引入于:v24.12
将 DateTime64 转换为具有固定秒精度的 Int64 值。根据其精度对输入值进行适当的放大或缩小。
输出值相对于 UTC,而不是输入值的时区。
语法
参数
value— 具有任何精度的 DateTime64 值。DateTime64
返回值
返回秒中的 Unix 时间戳。 Int64
示例
使用示例