BigQuery通配符表查询问题:用current_date无结果求助
BigQuery通配符表使用current_date无结果的解决方案
我来帮你搞定这个问题——核心问题出在日期格式不匹配上!
你当前的查询里,cast(current_date as string)输出的是带横杠的日期格式(比如'2024-05-20'),但你的表后缀是'20180101'这种无横杠的YYYYMMDD格式,这两种字符串没法用BETWEEN正确比较,所以才会返回零结果。
给你两种修正方案,任选其一都能解决问题:
方案一:对齐字符串格式
用FORMAT_DATE函数把current_date转成和表后缀一致的YYYYMMDD格式:
select * FROM `test.session_streaming_*` WHERE _table_suffix BETWEEN '20180101' AND FORMAT_DATE('%Y%m%d', current_date)
方案二:转成日期类型比较(更严谨)
把表后缀解析为日期类型,再和日期值做比较,这种方式逻辑更清晰,也能避免格式不兼容的潜在问题:
select * FROM `test.session_streaming_*` WHERE PARSE_DATE('%Y%m%d', _table_suffix) BETWEEN DATE('2018-01-01') AND current_date
这两种方案都能帮你正确筛选出20180101到当前日期的所有目标表数据。
内容的提问来源于stack exchange,提问作者Mayank
相关产品推荐
相关产品推荐

