我在处理字符串格式的日期字段时遇到了问题,所以我试图对基础进行清理。我的基中的默认格式日期字符串是"%d/%m/%Y",但是由于这来自csv文件,可能存在一些不需要的字符串。当我试图用以下方法进行解析时,我会遇到错误:
parse_date('%d/%m/%Y',trim(e.checkin))就像这样,但是每次我运行时都会得到一个新的问题字符:
Illegal non-space trailing data '�' in string "25/07/201€" 处理这件事最好的方法是什么?
发布于 2017-04-07 20:38:26
解决这个问题的核心是识别那些带有“断开”checkin字段的行。
然后,您可以跳过下面这样的处理
#standardSQL
WITH e AS (
SELECT '25/07/201€' AS checkin UNION ALL
SELECT '25/07/2016'
)
SELECT
checkin AS checking_string,
PARSE_DATE('%d/%m/%Y',TRIM(e.checkin)) AS checking_date
FROM e
WHERE REGEXP_CONTAINS(e.checkin, r'^(\d){2}/(\d){2}/(\d){4}$')或者你可以用某种方式来处理这些破碎的价值观。
在任何情况下,使用WHERE REGEXP_CONTAINS(e.checkin, r'^(\d){2}/(\d){2}/(\d){4}$')方法都可以控制情况
希望这能给你足够的方向
https://stackoverflow.com/questions/43286439
复制相似问题