正在获取:INVALID_FUNCTION_ARGUMENT:无效格式:尝试 date_parse 字符串格式日期时的“”

Getting: INVALID_FUNCTION_ARGUMENT: Invalid format: "" when trying to date_parse a string formatted date

查询:

SELECT date_parse(start_date, '%Y/%m/%d')
FROM sql_question_five_2 ;

csv 中的日期格式如下所示:20210531 被读入 table 作为字符串。

尝试了几种不同的方法来将其转换为日期 YYYY-MM-DD

您的格式字符串需要与源值匹配。您的来源中没有 / 所以您的格式字符串也不应该

date_parse 期望所有输入看起来像格式字符串,否则会抛出错误。你可以这样做来避免这个问题:

SELECT IF(start_date = '', NULL, date_parse(start_date, '%Y/%m/%d'))
FROM sql_question_five_2

这可以防止字符串为空的情况,也就是出现错误时的情况。如果您有其他不符合格式的字符串,您也必须加以防范。

如果是这种情况,您可以使用捕获错误的 TRY 函数和 returns NULL:

SELECT TRY(date_parse(start_date, '%Y/%m/%d'))
FROM sql_question_five_2