bigQuery 不支持毫秒时间戳



我的 csv 文件中有一个值作为 '1522865628160'。当我在 bigQuery 中加载此字段类型为时间戳的数据时,它将时间戳保存为"1522865628160000"。所以当我查询喜欢

select * from <tablename> limit 1

它给了我错误

无法返回相对于 Unix 纪元的 1522865628160000000 微秒的无效时间戳值。有效时间戳值的范围为 [0001-01-1 00:00:00, 9999-12-31 23:59:59.999999];写入字段时间戳时出错">

请帮忙

我认为这里的问题是您尝试将 UNIX 时间戳数据加载到 BigQuery 中的时间戳列中。 BigQuery 时间戳列与 UNIX 时间戳不同。 后者只是一个数值,表示自 1970 年 UNIX 纪元开始以来的秒数。

因此,此处的解决方法是将数据加载到INT64(如果您使用的是旧版(列中,则INTEGER。 从那里,您可以将 UNIX 时间戳转换为真正的日期或时间戳。

有一个MSEC_TO_TIMESTAMP()函数可以将自UNIX纪元以来的整数毫秒数转换为真正的时间戳,例如

SELECT MSEC_TO_TIMESTAMP(1522865628160)
2018-04-04 11:13:48 UTC

最新更新