Sequelize:向日期添加一天不起作用

nia*_*iaS 3 node.js sequelize.js graphql sequelize-cli

updatedAt我的表中有一个User类型的列Date,它存储日期和时间。我想仅使用日期而不是日期时间进行查询。我正在使用sequelizeSequelize.Op.gtSequelize.Op.lt运算Users符通过添加24 * 60 * 60 * 1000. 但日期不会增加一天。当我尝试减法时,它工作得完美无缺。我只能在使用 getTime() 方法后添加一天。

我很困惑为什么它在不使用减法时有效getTime()但在加法时不起作用。有人能解释一下吗?

长话短说

有效:

[Sequelize.Op.gt]: new Date(new Date(updatedAt) - 24 * 60 * 60 * 1000)
//updateAt: 2018-11-27
//output: 2018-11-26
Run Code Online (Sandbox Code Playgroud)

不起作用

[Sequelize.Op.gt]: new Date(new Date(updatedAt) + 24 * 60 * 60 * 1000)
//updateAt: 2018-11-27
//output: 2018-11-27
Run Code Online (Sandbox Code Playgroud)

有效:

[Sequelize.Op.lt]: new Date(new Date(updatedAt).getTime() + 24 * 60 * 60 * 1000)
//updateAt: 2018-11-27
//output: 2018-11-28
Run Code Online (Sandbox Code Playgroud)

ABD*_*MAL 5

sequelize.fn("DATEADD", sequelize.literal("DAY"), 4, sequelize.col('Your Date')) // 4 number of days adding
Run Code Online (Sandbox Code Playgroud)

如果想查找包括此添加日期与当前日期的差异

sequelize.fn('DATEDIFF', sequelize.literal("DAY"), sequelize.fn("DATEADD", sequelize.literal("DAY"), 4, sequelize.col('Your Date')), sequelize.fn("GETDATE")
Run Code Online (Sandbox Code Playgroud)