按今天的日期对 FindAll 条件进行排序

时间:2021-05-28 09:43:53

标签: express sequelize.js

我的 sequelize 模型中有字段用于创建时间戳。见下文

activity_timestamp:{
    type: DataTypes.DATE
},

现在我想获取今天创建的所有日期..

 let condition = { source_operator_id: req.user_info.operator_id, activity_status: true }
    if( currentDate){
        condition.activity_timestamp = new Date();
    }
   TrollyActivityLog.findAll({
        where: condition,
        include:[
            {
                model:CustomerProfile,
                as:'customerinfo',
                required:true,
            }
        ],
        limit: limit,
        offset: offset 

    })

我想获得今天创建的所有数据。

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式进行。在我的示例中,我使用了 moment.js,但当然,您可以使用 JS 功能获取一天的开始和结束。

let condition = {
  source_operator_id: req.user_info.operator_id,
  activity_status: true,
};

// For the case when you want to get a  data for the specific date
// if (date) {
//   condition.activity_timestamp = {
//     [Op.and]: [
//       {
//         [Op.gte]: moment(date)
//           .startOf("day")
//           .format("YYYY-MM-DDTHH:mm:ss.SSS[Z]"),
//       },
//       {
//         [Op.lte]: moment(date)
//           .endOf("day")
//           .format("YYYY-MM-DDTHH:mm:ss.SSS[Z]"),
//       },
//     ],
//   };
// }

// If you want to get a data for the current day
condition.activity_timestamp = {
  [Op.and]: [
    {
      [Op.gte]: moment().startOf("day").format("YYYY-MM-DDTHH:mm:ss.SSS[Z]"),
    },
    {
      [Op.lte]: moment().endOf("day").format("YYYY-MM-DDTHH:mm:ss.SSS[Z]"),
    },
  ],
};

TrollyActivityLog.findAll({
  where: condition,
  include: [
    {
      model: CustomerProfile,
      as: "customerinfo",
      required: true,
    },
  ],
  limit: limit,
  offset: offset,
});
相关问题