node.js - Sequelize:在日期上添加一天不起作用
问题描述
我的updatedAt
表User
中有一个Date
类型的列,它存储日期和时间。我想只使用日期而不是日期时间进行查询。我正在使用 sequelizeSequelize.Op.gt
和Sequelize.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
解决方案
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")
推荐阅读
- angular - 如何在 primeNG 日历中使用 yearNavigator,其中 selectionMode 为范围且 numberOfMonths 为 2
- jquery - 查看此示例代码以通过 ajax 发送数据
- blazor - 表单列表如何使用 Blazor 执行此操作?
- reactjs - ESLint 导入插件的正则表达式规则始终将类型导入保持在底部
- git - 如何将现有的 RedHat BRMS 项目推送到远程 git 存储库
- sql - Oracle SQL - 结合负数或正数舍入调整值使用 Select 语句
- android - TabLayout 和 viewPager 重叠
- python - Pyspark 数据框使用 Azure Databricks 附加到 StorageBlob 中的另一个 csv 文件
- google-cloud-platform - 映射 GCP API/服务的依赖项/要求
- php - 有什么办法可以解决我面临的数组问题上的这个循环?