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

如何解决BigQuery中YYYYMMDD与时分转DateTime的空格问题?

解决BigQuery中YYYYMMDD日期+时分转DateTime的问题

方法一:直接组合DATE和TIME生成DateTime

不用手动拼接字符串再转换,直接用原生函数构造,简洁且不会出现空格问题:

SELECT DATETIME(
  DATE(PARSE_DATE('%Y%m%d', date)),
  TIME(H.hour, H.minute, 0)
) AS full_datetime
FROM your_table
  • PARSE_DATE('%Y%m%d', date) 将YYYYMMDD格式的字符串转为DATE类型
  • TIME(H.hour, H.minute, 0) 用小时、分钟构造TIME类型
  • DATETIME() 函数直接合并DATE和TIME,生成标准DateTime类型

方法二:修复拼接逻辑并转换

如果坚持用拼接方式,改用FORMAT_STRING格式化时分避免空格,再转DateTime:

SELECT PARSE_DATETIME(
  '%Y-%m-%d %H:%M:%S',
  CONCAT(
    SUBSTR(date, 1, 4), '-', SUBSTR(date, 5, 2), '-', SUBSTR(date, 7, 2),
    ' ', FORMAT_STRING('%02d', H.hour), ':', FORMAT_STRING('%02d', H.minute), ':00'
  )
) AS full_datetime
FROM your_table
  • FORMAT_STRING('%02d', H.hour) 确保小时是两位数字(如1转为01),不会产生空格
  • PARSE_DATETIME 直接将标准格式的字符串转为DateTime类型,自动完成格式校验

原始代码空格问题原因

你用的CAST(H.hour as string format '00')在BigQuery中,当小时/分钟是个位数时,会补空格而非0,导致拼接结果出现多余空格,改用FORMAT_STRING可以彻底解决这个问题。

内容的提问来源于stack exchange,提问作者tomas gonzalez villanueva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:25:05