【问题标题】:Sequelize - Query milliseconds field to get all data in same dateSequelize - 查询毫秒字段以获取同一日期的所有数据
【发布时间】:2021-09-16 16:56:45
【问题描述】:

在我的表test 中,我将字段date 存储为毫秒值,例如1620287520000,即UTC 日期和时间中的Thu May 06 2021 07:52:00

假设我在下面有一些记录

[
  {
     id:1,
     date:1620287520000
  },  
  {
     id:2,
     date:xxxx
  },
]

我想获取所有dateThu May 06 2021 的数据,无论何时。

如何用 Sequelize/nodejs 的方式实现?

test.model.js

const Sequelize = require('sequelize');
const DataTypes = Sequelize.DataTypes;

module.exports = function (app) {
  const sequelizeClient = app.get('sequelizeClient');
  const test = sequelizeClient.define('test', {
    ...,
    date:{
      type: DataTypes.DATE,
    },
  }, {
    hooks: {
      beforeCount(options) {
        options.raw = true;
      }
    }
  });
  return test;
};

【问题讨论】:

    标签: mysql sql node.js sequelize.js


    【解决方案1】:

    您可以在 where 选项中使用 sequelize 运算符,例如:

    // first call Op from sequelize package
    const {Op} = require('sequelize')
    
    // calling data which is less than Thu May 07 2021 and Thu May 06 2021 with lt (less than) and gte (greater than equal) operators
    const data = await Test.findAll({where: {
      date: {
        [Op.lt]: 'Thu May 07 2021', // not sure whether this would be valid date, if not change it to javascript valid date
        [Op.gte]: 'Thu May 06 2021'
      }
    }})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      相关资源
      最近更新 更多