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

如何在BigQuery中将Python time.time()存储的浮点型转为日期时间戳显示

解决BigQuery中Python time.time()浮点时间戳转日期时间的问题

Python time.time()输出的是以秒为单位的Unix时间戳浮点数,小数部分代表毫秒/微秒级精度。你之前尝试的方法没成功,是因为用错了函数或者转换逻辑,正确的处理方式如下:

核心方法

将浮点时间戳乘以1000000转换为微秒级整数,再用TIMESTAMP_MICROS()函数生成标准时间戳。这样既保留精度,又能正确解析。

示例查询

假设你的表字段名为unix_time_float,查询语句如下:

SELECT
  unix_time_float,
  -- 转换为带微秒精度的时间戳
  TIMESTAMP_MICROS(CAST(unix_time_float * 1000000 AS INT64)) AS formatted_datetime,
  -- 如果需要格式化显示为特定字符串(比如YYYY-MM-DD HH:MM:SS),用FORMAT_TIMESTAMP
  FORMAT_TIMESTAMP("%Y-%m-%d %H:%M:%E6S", TIMESTAMP_MICROS(CAST(unix_time_float * 1000000 AS INT64))) AS formatted_str
FROM
  `your-project.your-dataset.your-table`;

为什么之前的方法无效?

  • DATE_FROM_UNIX_DATE():这个函数处理的是以天为单位的Unix日期值(从1970-01-01开始的天数),不是秒级时间戳,完全不匹配你的场景。
  • 直接转INT64再用TIMESTAMP_MICROS():直接转INT64会丢弃浮点时间戳的小数部分(即微秒/毫秒精度),且TIMESTAMP_MICROS()需要的是微秒数而非秒数,逻辑错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:50:26