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

Google BigQuery:INT类型Timestamp转可读格式的函数选择疑问

时间戳转换函数选择指南

函数核心差异

  • format_timestamp():专为完整时间戳设计,能完整解析INT类型时间戳包含的年、月、日、时、分、秒全量信息,输出完整的日期时间字符串,是处理时间戳的标准选择。
  • format_date()/format_time():仅负责提取日期或时间单一维度信息,若直接传入INT时间戳,会因函数默认的转换基准(如时区、起始时间)与format_timestamp()不同,导致结果偏差。

选择建议

  1. 若你的INT字段是包含完整时间信息的秒/毫秒级时间戳,直接用format_timestamp(),它能精准还原时间戳对应的完整日期时间,避免拆分转换的错误。
  2. 若仅需单独的日期或时间部分,先通过format_timestamp()转换为完整日期时间,再用截取函数提取对应部分,不要直接用format_date()/format_time()处理原始INT时间戳。
  3. 统一时区:结果不一致常因时区差异导致,调用函数时指定明确时区(如format_timestamp('yyyy-MM-dd HH:mm:ss', your_int_ts, 'UTC'))。

示例代码(以Spark SQL为例)

假设INT时间戳为秒级:

-- 转换完整日期时间
SELECT format_timestamp(from_unixtime(your_int_timestamp), 'yyyy-MM-dd HH:mm:ss') AS full_datetime
FROM your_table;

-- 提取单独的日期/时间
SELECT 
  date_format(full_datetime, 'yyyy-MM-dd') AS only_date,
  date_format(full_datetime, 'HH:mm:ss') AS only_time
FROM (
  SELECT format_timestamp(from_unixtime(your_int_timestamp), 'yyyy-MM-dd HH:mm:ss') AS full_datetime
  FROM your_table
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 09:42:38