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

求助:在BigQuery中将'1/17/2022, 11:59 PM'转换为时间戳

BigQuery字符串转指定时间戳解决方案

你的问题在于用了PARSE_DATE函数——这个函数只能解析纯日期字符串,无法处理包含时间、AM/PM标识的完整时间字符串。要实现需求,需要用PARSE_TIMESTAMP解析原字符串,再用FORMAT_TIMESTAMP输出目标格式。

步骤1:解析原字符串为时间戳

使用PARSE_TIMESTAMP,指定匹配原字符串的格式符:

SELECT PARSE_TIMESTAMP('%m/%d/%Y, %I:%M %p', '1/17/2022, 11:59 PM') AS raw_timestamp;

格式符说明:

  • %m:两位月份(原字符串中1会被补为01)
  • %d:两位日期
  • %Y:四位年份
  • %I:12小时制的小时数(对应原字符串的11)
  • %M:分钟数
  • %p:AM/PM标识

步骤2:格式化为目标字符串

如果需要输出2022/01/17 23:59:00 UTC这种指定格式的字符串,用FORMAT_TIMESTAMP转换:

SELECT FORMAT_TIMESTAMP('%Y/%m/%d %H:%M:%S UTC', PARSE_TIMESTAMP('%m/%d/%Y, %I:%M %p', '1/17/2022, 11:59 PM')) AS target_timestamp;

这里%H是24小时制的小时数(11 PM会转为23),确保输出符合目标格式。

注意事项

  • 如果你的会话时区不是UTC,解析时可以指定时区参数(比如PARSE_TIMESTAMP('%m/%d/%Y, %I:%M %p', '1/17/2022, 11:59 PM', 'America/New_York')),避免时区转换误差。
  • 若只需要TIMESTAMP类型而非格式化字符串,直接使用PARSE_TIMESTAMP的结果即可,BigQuery内部会以UTC存储时间戳。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:45:29