我正在尝试将一些表从Spanner复制到BigQuery。
我将Spanner数据库转储为csv文件,当我尝试将该csv上传到BigQuery时,它会抛出时间戳格式的错误。
Here,他们提到了BigQuery TIMESTAMP的局限性。
如何将扳手TIMESTAMP转换为BigQuery TIMESTAMP?
答案 0 :(得分:0)
可能有两种方法可以解决这个问题。
您还可以编写脚本将时间戳转换为BigQuery格式。
答案 1 :(得分:0)
除了@ Biswa-nag所写的内容-
我们将Spanner表导出到avro文件,然后导入到BigQuery。 不幸的是,事实证明时间戳记是BigQuery中的字符串。
对于临时查询,我们的解决方法是使用用户定义的函数来转换查询中的时间戳(花了一些时间来找到正确的格式...)
一个例子:
CREATE TEMP FUNCTION ConvertTimestamp(dt STRING) AS (PARSE_DATETIME("%Y-%m-%dT%H:%M:%E*SZ", dt));
select count(*) from `[db].Games` where ConvertTimestamp(StartTime) >= DateTime(2019,8,1,0,0,0)
答案 2 :(得分:0)
我这样将时间戳转换为纪元时间
SELECT myTime , FORMAT_TIMESTAMP("%s", myTime, "America/Los_Angeles") FROM MyTable
它奏效了。