- 类别:
TRY_TO_TIME¶
TO_TIME、TIME 的特殊版本,它执行相同的操作(即将输入表达式转换为时间),但支持错误处理(即,如果无法执行转换,它将返回 NULL 值而不是引发错误)。
有关更多信息,请参阅 错误处理转换函数。
- 另请参阅:
语法¶
TRY_TO_TIME( <string_expr> [, <format> ] )
TRY_TO_TIME( '<integer>' )
实参¶
必填:
其中之一:
string_expr
这应该是可以转换为有效时间的字符串。
'integer'
计算结果为包含整数的 字符串 的表达式,例如“15000000”。根据字符串的大小,它可以解释为秒、毫秒、微秒或纳秒。有关详细信息,请参阅下面的 使用说明。
备注
不建议使用带引号的整数作为输入内容。
可选:
format
string_expr
或 AUTO 的格式说明符。有关更多信息,请参阅 转换函数中的日期和时间格式。默认值为 TIME_INPUT_FORMAT 会话参数的当前值(通常为 AUTO)。
返回¶
返回值的数据类型是 TIME
。
使用说明¶
如果输入参数的格式是包含整数的字符串:
将字符串转换为整数后,该整数被视为自 Unix 纪元时间 (1970-01-01 00:00:00.000000000 UTC) 开始后的秒数、毫秒数、微秒数或纳秒数。
如果整数小于 31536000000(一年中的毫秒数),则该值被视为秒数。
如果该值大于或等于 31536000000 且小于 31536000000000,则该值被视为毫秒数。
如果该值大于或等于 31536000000000 且小于 31536000000000000,则该值被视为微秒数。
如果该值大于或等于 31536000000000000,则该值被视为纳秒数。
备注
弃用警告:未来版本的 Snowflake 可能会自动将字符串化的整数值解释为秒数,而不是毫秒数、微秒数或纳秒数。Snowflake 建议您仅在打算将整数解释为秒数时,才使用包含整数的字符串调用 TO_DATE、TO_TIME 或 TO_TIMESTAMP。
如果评估多行(例如,如果输入内容是包含多行的表的列名),则每个值都将单独得到检查,以确定该值表示的是秒数、毫秒数、微秒数还是纳秒数。
示例¶
这演示了 TRY_TO_TIME
的用法:
SELECT TRY_TO_TIME('12:30:00'), TRY_TO_TIME('Invalid'); +-------------------------+------------------------+ | TRY_TO_TIME('12:30:00') | TRY_TO_TIME('INVALID') | |-------------------------+------------------------| | 12:30:00 | NULL | +-------------------------+------------------------+