gpt4 book ai didi

node.js - 使用 sequelize 获取数据,其中日期小于当前日期

转载 作者:行者123 更新时间:2023-12-03 22:29:49 26 4
gpt4 key购买 nike

这是我的 fiddle 。 http://sqlfiddle.com/#!17/20c29
我正在尝试获取日期小于当前日期的行。我的Node js代码如下。

let nowDate = moment().startOf('day').subtract(7, 'days').toDate();
console.log(nowDate);
const campaign = await Campaigns.findAll({
where: {
campaign_end_date: {
$lt: nowDate
}
},
attributes: ['campaign_id', 'campaign_end_date'],
required: true
});
这不返回任何数据我该怎么做?我无法更改 psql 上的日期类型。

最佳答案

这可能是因为不推荐使用语法 $lt 并且需要使用特定的配置。
这是讨论此问题的文档部分。

Deprecated: Operator Aliases
In Sequelize v4, it was possible to specify strings to refer to operators, instead of using Symbols. This is now deprecated and heavily discouraged, and will probably be removed in the next major version. If you really need it, you can pass the operatorAliases option in the Sequelize constructor.

For example:

const { Sequelize, Op } = require("sequelize");
const sequelize = new Sequelize('sqlite::memory:', {
operatorsAliases: {
$gt: Op.gt
}
});

// Now we can use `$gt` instead of `[Op.gt]` in where clauses:
Foo.findAll({
where: {
$gt: 6 // Works like using [Op.gt]
}
});
那么您可以尝试使用新语法吗?
应该是这样的:
campaign_end_date: {
[Op.lt]: nowDate
}
注意之前需要导入 Op
仅供引用,此处不能使用属性 required
它只是在进行急切加载(在 include 内)时使用,以将内连接转换为左连接(从 SQL 的角度来看)。
如果您有兴趣,这里是谈论它的文档:
https://sequelize.org/master/manual/eager-loading.html

关于node.js - 使用 sequelize 获取数据,其中日期小于当前日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68002714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com