You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Sequelize查询创建时间早于一年前的记录

如何使用Sequelize查询创建时间早于一年前的记录

示例数据

userId createdDate
1.      2023-07-19 00:49:59
2.      2022-08-20 00:49:59

原有代码问题

你写的代码存在两处错误:

  • 运算符误用:使用[Op.gte](大于等于),但需求是筛选早于一年前的记录,应该用[Op.lte](小于等于)。
  • 日期计算错误:new Date(new Date().getFullYear(), 1)得到的是当前年份的2月1日(JavaScript月份从0开始计数),并非一年前的日期。

正确实现代码

方法一:直接计算时间戳(简单但忽略闰年)

return this.findAll({
  where: {
    createdDate: {
      [Op.lte]: new Date(Date.now() - 365 * 24 * 60 * 60 * 1000)
    }
  }
});

方法二:精准计算年份(考虑闰年)

const oneYearAgo = new Date();
oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1);

return this.findAll({
  where: {
    createdDate: {
      [Op.lte]: oneYearAgo
    }
  }
});

执行结果

使用上述代码后,会正确返回你期望的记录:

2.      2022-08-20 00:49:59

内容的提问来源于stack exchange,提问作者learntocode2468

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 12:55:25