首页 > 解决方案 > Sequelize:在日期上添加一天不起作用

问题描述

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

我很困惑为什么它在不使用的情况下减去getTime()但在添加时不起作用。谁能解释一下?

TL;博士

有效:

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

不起作用

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

有效:

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

标签: node.jssequelize.jsgraphqlsequelize-cli

解决方案


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

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

sequelize.fn('DATEDIFF', sequelize.literal("DAY"), sequelize.fn("DATEADD", sequelize.literal("DAY"), 4, sequelize.col('Your Date')), sequelize.fn("GETDATE")

推荐阅读