类似于presto中的TRY_CAST方法



在SQL server中,有TRY_CAST方法可用于检查是否可以强制转换。如果无法强制转换,则会将NULL设置为值。

普雷斯托有类似的方法吗?或者如何在presto中实现类似的行为?

这个函数已经存在很多年了。你可以在文档中找到它。

SELECT try_cast('abc' AS bigint)

=>

_col0
-------
NULL
(1 row)

我尝试使用TRY_CAST将字符串转换为时间戳,并将其与我自己的转换代码进行比较。

select 
CASE
WHEN LENGTH(received)<3 
THEN NULL
ELSE DATE(DATE_PARSE(substr(received, 1,10), '%m/%d/%Y'))  
END AS "RECEIVED_CV"
,DATE(TRY_CAST(received AS TIMESTAMP)) AS RECEIVED
from (table)

结果非常有趣。我的代码将产生日期,但TRY_CAST将产生null。原始字符串值是这样的";2021年5月2日15:45:57.000000";

结果的比较

相关内容

  • 没有找到相关文章

最新更新