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

BigQuery中19位整数时间戳转YYYY-MM-DD日期的问题

BigQuery中19位纳秒级时间戳转日期的解决方案

你的19位整数是纳秒级Unix时间戳(从1970-01-01 00:00:00 UTC开始的纳秒数),之前的函数报错核心原因是单位不匹配或函数用途错误,以下是正确的处理方法:

正确代码示例

方法1:转微秒后生成日期

SELECT DATE(TIMESTAMP_MICROS(SAFE_DIVIDE(create_date, 1000))) AS formatted_date
FROM your_table;

方法2:转秒后格式化日期

SELECT FORMAT_TIMESTAMP("%Y-%m-%d", TIMESTAMP_SECONDS(SAFE_DIVIDE(create_date, 1000000000))) AS formatted_date
FROM your_table;

之前方法的问题说明

  • FORMAT_TIMESTAMP("%Y-%m-%d", create_date):直接传入整数会被BigQuery识别为日期的整数编码(如20230901),19位数值远超合法范围,导致报错。
  • SAFE.TIMESTAMP_MICROS(create_date):TIMESTAMP_MICROS仅支持微秒级时间戳(最大约1e18),19位纳秒数值超出其范围,触发"超出范围"错误。
  • DATE_FROM_UNIX_DATE(create_date):该函数用于将"1970-01-01起的天数"转为日期,19位整数对应的天数完全不符合函数预期,报错。
  • PARSE_DATE('%Y%m%d', CAST(create_date)):将19位整数转为字符串后,格式与%Y%m%d(如20230901)完全不匹配,解析失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:02:41