使用此程序包从一个轻型Node.js应用程序对Google BigQuery进行流式插入:https://www.npmjs.org/package/bigquery
我通过这段简单的代码在服务器上生成了一个时间戳:
jsonData['createdAt'] = new Date().getTime();
然后我将其插入BigQuery,进入类型为' timestamp'的字段。没有中间步骤(除了Node包)。
但是许多(尽管不是全部)日期看起来都很糟糕。例如:
46343-08-28 05:58:59 UTC
那应该说类似于2014年6月15日晚上11:45的事情。但是,我创建的某些日期是正确的,我无法找到差异的原因。
有什么建议吗?
答案 0 :(得分:8)
如果没有实际调试JS代码,这似乎是一个“千载难逢”的问题。
检查出来:
SELECT USEC_TO_TIMESTAMP(1400341611711851)
2014-05-17 15:46:51 UTC
SELECT USEC_TO_TIMESTAMP(1400341611711851*1000)
46345-01-22 13:01:51 UTC
SELECT MSEC_TO_TIMESTAMP(1400341611711851)
46345-01-22 13:01:51 UTC
SELECT MSEC_TO_TIMESTAMP(1400341611711851/1000)
2014-05-17 15:46:51 UTC
因此,要以秒为单位获取UNIX时间戳,请将new Date().getTime()
数字除以1000。
答案 1 :(得分:-2)
使用:
bigquery.datetime(new Date()。toISOString())