如何根据时间戳过滤documentdb记录?

时间:2017-04-26 09:01:41

标签: sql node.js database azure azure-cosmosdb

我正在使用documentdb数据库,

因此它在馆藏中有很多记录/文件,

否简化它我想根据时间戳获取记录/文档。

  1. 我想获取过去1天内创建的所有记录。
  2. 我想获取过去15天内创建的所有记录。
  3. 我想获取过去1个月内创建的所有记录。
  4. 我想获取过去1年内创建的所有记录。
  5. 我试图像这样进行查询,但它不起作用。

    var curDate = new Date().getTime();
    SELECT * FROM r WHERE r._ts >= @curDate AND r.studentId=@studentId
    

1 个答案:

答案 0 :(得分:1)

new Date().getTime() docs

  

表示1970年1月1日00:00:00 UTC与给定日期之间经过的毫秒数。

_ts docs

  

表示自1970年1月1日以来经过的秒数的数字

所以你要将毫秒与秒进行比较,这不会产生任何结果。

在将第一个值与第二个值进行比较之前,您需要将第一个值除以1000。当然,您需要减去1天,1个月或您需要的任何值,例如

var twoDaysAgo = new Date();
twoDaysAgo.setDate(d.getDate() - 2);
var threshold = twoDaysAgo.getTime() / 1000;

SELECT * FROM r WHERE r._ts >= @threshold AND r.studentId=@studentId