这个 sequelize 查询有啥问题
Posted
技术标签:
【中文标题】这个 sequelize 查询有啥问题【英文标题】:What is wrong with this sequelize query这个 sequelize 查询有什么问题 【发布时间】:2020-06-09 17:43:19 【问题描述】:我正在构建一个带有 Sequelize ORM 的 Web 应用程序。我的查询:
if(req.query.dataTransIni && req.query.dataTransFim )
condition.data =
[op.or] :
[op.between] : [
logdatatransacao : moment(req.query.dataTransIni).format("YYYY-MM-DD"),
logdatatransacao : moment(req.query.dataTransFim).format("YYYY-MM-DD")
],
[op.between] : [
arqdataTransacao : moment(req.query.dataTransIni).format("YYYY-MM-DD"),
arqdataTransacao : moment(req.query.dataTransFim).format("YYYY-MM-DD")
]
控制台报错
UnhandledPromiseRejectionWarning: Error: Invalid value arqdataTransacao: '2019-10-10'
我想要的样子
select * from myTable
where
logdatatransacao between ('2020-02-27') and ('2020-02-28')
or
arqdataTransacao between ('2020-02-27') and ('2020-02-28')
【问题讨论】:
【参考方案1】:我看到您在 between
Op. 中再次指定对象内的列名。
通过提供标量数组,以下对我有用:
const startDate = moment('2020-01-01').format("YYYY-MM-DD");
const endDate = moment('2020-01-02').format("YYYY-MM-DD");
const departments = await sequelize.models.department.findAll(
where:
created:
[Sequelize.Op.between]: [startDate, endDate]
,
attributes: ['name'],
raw: true,
nest: true
);
SQL:
SELECT "name" FROM "departments" AS "department" WHERE "department"."created" BETWEEN '2020-01-01 08:00:00.000 +00:00' AND '2020-01-02 08:00:00.000 +00:00';
【讨论】:
感谢您尝试帮助我 Samuel G,我会在这里尝试您的解决方案 是的。非常感谢。我会发布我的解决方案 有了你的回答,我解决了我的 sintaxe 问题【参考方案2】:解决了我的问题:
var condition = [];
...
if(req.query.dataTransIni && req.query.dataTransFim )
condition.push(
[op.or] : [
logdatatransacao :
[op.between] : [
moment(new Date(req.query.dataTransIni)).format("YYYY-MM-DD"),
moment(new Date(req.query.dataTransFim)).format("YYYY-MM-DD")
]
,
arqdataTransacao :
[op.between] : [
moment(new Date(req.query.dataTransIni)).format("YYYY-MM-DD"),
moment(new Date(req.query.dataTransFim)).format("YYYY-MM-DD")
]
]
)
...
const Vscmc = await Modelvscmc.findAll(
offset : ((offsetPage-1)*limit),
limit: limit,
where : condition
)
我的问题是括号和括号对象。
【讨论】:
以上是关于这个 sequelize 查询有啥问题的主要内容,如果未能解决你的问题,请参考以下文章