如何安全地将字符串转换为日期?

Seb*_*ian 2 sql google-bigquery

我使用 DATE 函数从年、月和日期的三个变量中获取日期,如下所示:

DATE(year_var, month_var, day_var) AS date_ymd

但是,有时这会导致无效日期,例如,month_var 可能是 11,day_var 可能是 31。在这些情况下,DATE 将失败,因为 2022-11-31 不是有效日期。

相反,我需要将 NULL 作为结果。

我正在寻找类似SAFE_CAST 的东西,但用于日期。

任何提示都非常感谢!

Jay*_*ger 6

使用SAFE.前缀进行安全函数调用。

SELECT SAFE.DATE(2022, 11, 31) AS date_ymd;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述