我的 csv 文件中有一个时间戳值为“1522865628160”。当我在 bigQuery 中加载此字段类型为时间戳的数据时,它将时间戳保存为“1522865628160000”。所以当我查询时
select * from <tablename> limit 1
Run Code Online (Sandbox Code Playgroud)
它给了我错误
无法返回相对于 Unix 纪元 1522865628160000000 微秒的无效时间戳值。有效时间戳值范围为 [0001-01-1 00:00:00, 9999-12-31 23:59:59.999999];写入字段时间戳时出错”
请帮忙
我认为这里的问题是您试图将 UNIX 时间戳数据加载到BigQuery的时间戳列中。一个BigQuery的timestamp列是不一样的东西作为UNIX时间戳。后者只是一个数值,表示自 1970 年 UNIX 时代开始以来的秒数。
因此,此处的解决方法是将您的数据加载到INT64
(或者INTEGER
如果您使用的是旧版)列中。从那里,您可以将您的 UNIX 时间戳转换为真正的日期或时间戳。
有一个MSEC_TO_TIMESTAMP()
函数可以将自 UNIX 纪元以来的整数毫秒数转换为真正的时间戳,例如
SELECT MSEC_TO_TIMESTAMP(1522865628160)
2018-04-04 11:13:48 UTC
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4260 次 |
最近记录: |