BigQuery / Node.js时间戳关闭

时间:2014-05-17 04:07:17

标签: node.js timestamp google-bigquery

使用此程序包从一个轻型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的事情。但是,我创建的某些日期是正确的,我无法找到差异的原因。

有什么建议吗?

2 个答案:

答案 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())