Sequelize日期差异的平均值

时间:2018-02-21 16:17:13

标签: sql postgresql sequelize.js

我有以下(摘要)续集模型:

{
  startTime: Date,
  endTime: Date,
}

现在我想获得所有现有实体的平均持续时间。在SQL中,我将其建模为SELECT AVG("end_time" - "start_time") FROM "MyTable";。但我不知道如何用续集来做到这一点。

我已尝试使用sequelize.fn(),但未得出结论。

所以我的目标是拥有类似的东西:

MyModel.findAll({
  attributes: ['averageTime' <<< now what?]
});

哦,我正在使用PostgreSQL 9.6。

最佳, 菲利普

1 个答案:

答案 0 :(得分:1)

您不能使用findAllfindOne,因为它们会返回模型的实例,您需要获得一些标量值。

原始查询可用于执行您需要的操作:

sequelize.query(
  'SELECT AVG("end_time" - "start_time") FROM "MyTable"',
  { type: sequelize.QueryTypes.SELECT}
).then(function(result) {
    // process result here
})