繁体   English   中英

在 bigquery 中拆分字符串的问题

[英]Issue with splitting string in bigquery

我似乎无法拆分这个字符串,我想以 YYYY-MM-DD 的格式将最后 8 个数字作为“日期”。 我想使用 _filename 来传递并生成日期。

select

拆分(拆分(“gs://mmmm_ssss_count_detail/mmm_ssss_count_detail_20220125.csv”,'/')[偏移量(2)],'_')[偏移量(3)]

这只是给了我“细节”,这不是我需要的,它至少应该给我“20220125.csv”,然后我可以在其中删除 .csv 部分并将其解析为我的主要 select 查询中的“日期”。

请帮忙。

除了拆分,您可以使用正则表达式来查找日期值吗? 如果是这样,请尝试以下操作:

select 
    parse_date("%Y%m%d",regexp_extract(path, r'_(\d+)\.csv'))
from sample_data

上面的正则表达式字符串正在寻找一种模式,其中一组数字(\d+)存在于_.csv之间

使用您提供的示例字符串,它会产生:

在此处输入图像描述

考虑以下方法/选项

select _filename, 
  parse_date('%Y%m%d', array_reverse(split(replace(_filename, '.', '_'), '_'))[offset(1)]) file_date
from your_table      

如果应用于您问题中的示例数据 - output 是

在此处输入图像描述

暂无
暂无

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

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