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

SQL中将INT64类型时间戳转换为日期报错求助

解决BigQuery中INT64时间戳转日期/时间戳的报错问题

这个问题我之前也碰到过,其实是BigQuery的TIMESTAMP()函数本身就不支持直接传入INT64类型的时间戳——它只认字符串、DATE或者DATETIME类型的输入,所以才会报你看到的No matching signature for function TIMESTAMP for argument types: INT64错误。

要解决这个问题,你需要根据你的INT64时间戳的精度,选择对应的专用转换函数:

1. 秒级时间戳(比如1620000000这类10位整数)

用TIMESTAMP_SECONDS()函数转换为时间戳,如果要直接转成DATE类型,再套一层DATE():

-- 转成TIMESTAMP类型
SELECT TIMESTAMP_SECONDS(your_int64_timestamp_column) AS converted_timestamp
FROM your_table;

-- 直接转成DATE类型
SELECT DATE(TIMESTAMP_SECONDS(your_int64_timestamp_column)) AS converted_date
FROM your_table;

2. 毫秒级时间戳(比如1620000000000这类13位整数)

用TIMESTAMP_MILLIS()函数:

-- 转成TIMESTAMP类型
SELECT TIMESTAMP_MILLIS(your_int64_timestamp_column) AS converted_timestamp
FROM your_table;

-- 转成DATE类型
SELECT DATE(TIMESTAMP_MILLIS(your_int64_timestamp_column)) AS converted_date
FROM your_table;

3. 微秒级时间戳(比如1620000000000000这类16位整数)

用TIMESTAMP_MICROS()函数:

-- 转成TIMESTAMP类型
SELECT TIMESTAMP_MICROS(your_int64_timestamp_column) AS converted_timestamp
FROM your_table;

-- 转成DATE类型
SELECT DATE(TIMESTAMP_MICROS(your_int64_timestamp_column)) AS converted_date
FROM your_table;

简单来说,先把INT64的时间戳通过对应精度的函数转成TIMESTAMP,再按需转成DATE类型就可以了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:25:01