Datetime 如何在BigQuery SQL中捕获失败的CAST语句?

Datetime 如何在BigQuery SQL中捕获失败的CAST语句?,datetime,casting,google-bigquery,Datetime,Casting,Google Bigquery,我们正在使用BigQuery的非遗留SQL将字符串字段转换为日期时间字段 DATETIME字段被诸如“None”和“0.0”之类的值损坏,这会导致CAST语句失败 我们看到,对于其他类型的SQL,有TRY-CATCH函数和ISNUMERIC()测试,这两种测试在BigQuery中似乎都不受支持 下面是一个捕获“None”但未能捕获随机浮点或整数的示例: CASE WHEN UPDT_DT_TM LIKE 'None' THEN NULL ELSE CAST(UPDT_DT_TM AS DA

我们正在使用BigQuery的非遗留SQL将字符串字段转换为日期时间字段

DATETIME字段被诸如“None”和“0.0”之类的值损坏,这会导致CAST语句失败

我们看到,对于其他类型的SQL,有TRY-CATCH函数和ISNUMERIC()测试,这两种测试在BigQuery中似乎都不受支持

下面是一个捕获“None”但未能捕获随机浮点或整数的示例:

CASE 
 WHEN UPDT_DT_TM LIKE 'None' THEN NULL
 ELSE CAST(UPDT_DT_TM AS DATETIME) 
END AS UPDT_DT_TM,

除了BigQuery中的用户定义函数(UDF)之外,在创建CASE语句时是否有其他方法可以转换为DATETIME,如果它可以转换为DATETIME,但只是将值保留为NULL?

您可以使用
安全转换
函数,如果输入在解释为所需类型时不是有效值,则返回NULL。在您的情况下,只需使用
SAFE\u CAST(UPDT\u DT\u TM作为DATETIME)
。它位于中。

这对我不起作用,在将字符串转换为INT64时,我仍然无法转换“None”值。