Sequelize与当前时间戳进行比较

时间:2018-06-07 00:32:36

标签: node.js sequelize.js

这是我现在的代码:

const Grace = sequelize.define('grace', {
userId: Sequelize.TEXT,
tribeName: Sequelize.TEXT,
server: Sequelize.TEXT,
hours: Sequelize.INTEGER,
date: Sequelize.DATE,
datef: Sequelize.DATE,
});

正如您所见,datef是商店作为日期。 datef是未来的日期。示例:当前时间+ 36h

else if(command ===' showdb'){

  var now = Date.now();
  const gracep = await Grace.findAll({ 

    where: {

      datef: {
          $gt: now,          
      },

    }, 

  });

  }

我想要做的是让它在db中获取结果,其中datef比当前时间戳更好。

事情是datef存储为:2018-06-07 05:11:04.221 +00:00 现在的var是:1528330290003

因此,我非常确定它不起作用的原因,因为当它不应该输出[]时。

不确定该怎么做。

2 个答案:

答案 0 :(得分:0)

当我想将某些内容与当前日期进行比较时,我在Sequelize for WHERE子句中使用了日期比较。

在我的情况下,我将当前时间戳(从Date.now())转换为ISO字符串,如下所示:

const now = (new Date()).toISOString();

使用[Op.gte][Op.lte]运算符与存储日期进行比较时,我没有遇到任何问题。

答案 1 :(得分:0)

date.now()返回自UTC 1970年1月1日午夜以来的毫秒数。它与new Date().valueOf()

这是您可以做的

where : { datef : { [Op.gt]: new Date() } },

Sequelize documentation