转换函数¶
此系列函数可用于将任何 Snowflake 数据类型的表达式转换为另一种数据类型。
本主题内容:
函数列表¶
子类别 |
函数 |
备注 |
---|---|---|
任何数据类型 |
||
CAST 的错误处理版本。 |
||
文本/字符/二进制数据类型 |
||
TO_BINARY 的错误处理版本。 |
||
数值数据类型 |
||
TO_DECIMAL、TO_NUMBER 等的错误处理版本。 |
||
TO_DOUBLE 的错误处理版本。 |
||
布尔数据类型 |
||
TO_BOOLEAN 的错误处理版本。 |
||
日期和时间数据类型 |
||
TO_DATE 的错误处理版本。 |
||
TO_TIME 的错误处理版本。 |
||
TO_TIMESTAMP 等的错误处理版本。 |
||
半结构化数据类型 |
||
地理空间数据类型 |
||
TO_GEOGRAPHY 的错误处理版本 |
||
TO_GEOMETRY 的错误处理版本 |
||
错误处理转换函数¶
带有 TRY_ 前缀的转换函数是其各自转换函数的特殊版本。当无法执行转换时,这些函数返回 NULL 值,而不是引发错误:
请注意,这些函数仅支持字符串表达式(即 VARCHAR 或 CHAR 数据类型)作为输入。
重要
这些错误处理转换函数针对转换错误相对不常见的情况进行了优化:
如果没有(或很少)错误,则这些函数应该不会对性能产生明显影响。
如果转换失败次数很多,则使用这些函数可能会导致性能明显降低。此外,将它们与 VARIANT 类型结合使用时,某些操作可能会导致性能降低。
转换函数中的数字格式¶
函数 TO_DECIMAL、TO_NUMBER、TO_NUMERIC 和 TO_DOUBLE 接受可选参数,指定输入字符串的格式(如果输入表达式的计算结果为字符串)。有关此参数可以具有的值的更多信息,请参阅 SQL 格式模型。
转换函数中的日期和时间格式¶
以下函数允许您指定预期的日期、时间或时间戳格式,以解析或生成字符串:
您可以在可选实参中指定格式,使用以下不区分大小写的元素来描述格式:
格式元素 |
描述 |
---|---|
|
四位数年份。 |
|
两位数年份,由 TWO_DIGIT_CENTURY_START 会话参数控制,例如,当设置为 |
|
两位数月份(01 = 一月,以此类推)。 |
|
月份名称的全称或缩写。 |
|
月份名称的全称。 |
|
两位数日期(01 至 31)。 |
|
星期的缩写。 |
|
两位数小时(00 至 23)。不能 指定 |
|
两位数小时(01 至 12)。可以指定 |
|
上午 (am)/下午 (pm)。仅可用于 |
|
两位数分钟(00 至 59)。 |
|
两位数秒钟(00 至 59)。 |
|
精度为 0(秒)至 9(纳秒)的小数秒,例如 |
|
时区小时和分钟,从 UTC 开始偏移。可以用 |
|
四位数年份,格式为 ISO (link removed),负数为 BCE 年份。 |
备注
当使用仅日期格式时,关联时间假定为当天的午夜。
格式中双引号之间或上述元素以外的任何内容都会被解析/格式化,但不会被解释。
有关有效范围、位数和最佳实践的更多详细信息,请参阅 有关使用日期、时间和时间戳格式的其他信息。
使用说明¶
格式中双引号之间或上述元素以外的任何内容都会被解析/格式化,但不会被解释。
示例¶
SELECT TO_DATE('3/4/2013', 'dd/mm/yyyy');
-----------------------------------+
to_date('3/4/2013', 'dd/mm/yyyy') |
-----------------------------------+
2013-04-03 |
-----------------------------------+
SELECT TO_VARCHAR('2013-04-05'::date, 'mon dd, yyyy');
------------------------------------------------+
to_varchar('2013-04-05'::date, 'mon dd, yyyy') |
------------------------------------------------+
Apr 05, 2013 |
------------------------------------------------+
转换函数中的二进制格式¶
TO_CHAR、TO_VARCHAR 和 TO_BINARY 接受可选实参,指定要解析或生成字符串的预期格式。
格式可以是以下字符串(不区分大小写):
HEX
BASE64
UTF-8
有关这些格式的更多信息,请参阅 Overview of Supported Binary Formats。
有关这些格式的使用示例,请参阅 Binary Input and Output 的“示例”部分。