You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery数据传输服务如何获取无前置空格的个位数月日格式参数

问题解决方案

BigQuery Data Transfer Service的运行时参数没有原生提供直接返回无前置空格、无前导零的个位数月份/日期的格式符:

  • 月份格式%m返回固定两位带前导零的结果(如6月返回06)
  • 月份格式%c返回不带前导零的结果,但1-9月会带前置空格
  • 日期格式%e返回不带前导零的结果,但1-9日会带前置空格

可以直接在DTS的URI配置中通过参数链式转换的方式拿到符合要求的值,不需要额外开发预处理脚本,两种可用写法如下:

方案1:裁剪左侧空格

直接对带前置空格的格式返回值做左裁剪去掉空格,写法最简单:

s3://bucket/year=@{run_time|"%Y"}/month=@{run_time|"%c"|LTRIM(" ")}/day=@{run_time|"%e"|LTRIM(" ")}/*.json

双位数的月份、日期返回值本身不带前置空格,LTRIM处理不会改变原有值,全月份、全日期场景都能适配。

方案2:类型转换自动去格式

利用整数类型自动忽略前后空白、不保留前导零的特性,通过两次类型转换拿到纯数字结果:

s3://bucket/year=@{run_time|"%Y"}/month=@{run_time|"%c"|CAST("INT64")|CAST("STRING")}/day=@{run_time|"%e"|CAST("INT64")|CAST("STRING")}/*.json

转换逻辑是:带空格的数字字符串转INT64时会自动过滤前后空白,整数转字符串时不会保留多余的前导字符,最终输出就是纯数字的月份、日期值。

注意:不要使用%m/%d这类带前导零的格式做去零处理,否则10月、20日这类双位数的值会被错误截断为1月、2日,导致路径匹配失败。

内容的提问来源于stack exchange,提问作者Soner Guzeloglu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 02:12:41