繁体   English   中英

无法在 BigQuery 标准 SQL 中将日期字符串解析为时间戳

[英]Unable to Parse a date string to timestamp in BigQuery Standard SQL

我的数据集中有日期字符串列,这个日期字符串列的日期值格式如下所示

有些日期的格式是:2020-04-22,有些日期的格式是:04/22/2020

请建议如何将这些日期值解析为时间戳格式:2020-04-22 00:00:00 UTC

谢谢!

您需要标准化两个日期。 尝试使用:

SELECT
   COALESCE(SAFE.PARSE_DATE('%F', your_date_field), SAFE.PARSE_DATE('%m/%d/%Y', your_date_field)) AS your_new_date_field
FROM ...

如果所有字符串都严格符合一种格式或另一种格式,则可以执行条件逻辑:

PARSE_TIMESTAMP(
    CASE 
        WHEN REGEXP_CONTAINS(mydate, r"^\d{4}-\d{2}-\d{2}$" THEN "%F"
        WHEN REGEXP_CONTAINS(mydate, r"^\d{2}/\d{2}/\d{4}$" THEN "%m/%d/%Y"
    END,
    mydate
)

您可能希望使用SAFE.PARSE_TIMESTAMP()而不是PARSE_TIMESTAMP()来防止不匹配格式的转换失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM