我想将此代码转换为 Sequelize 。
where ADDTIME(deleted_at, TIMEDIFF(deleted_at, end_at) * 2) > NOW() OR (end_at < NOW() AND deleted_at is null);
我在下面的 Sequelize 文档中找到了。但这对我的查询来说还不够。
Post.findAll({
where: sequelize.where(sequelize.fn('char_length',
sequelize.col('status')), 6)
});
我想将此代码转换为 Sequelize 。
where ADDTIME(deleted_at, TIMEDIFF(deleted_at, end_at) * 2) > NOW() OR (end_at < NOW() AND deleted_at is null);
像这样。我不想使用 RAW 查询
最佳答案
这个子句大部分用Sequelize表达很简单,如下图:
where : {
[Op.or] : [
// 1
Sequelize.where(
Sequelize.fn('ADDTIME',
Sequelize.col('deleted_at'),
Sequelize.literal('TIMEDIFF(deleted_at, end_at) * 2')),
{[Op.gt] : Sequelize.fn('NOW')}
),
// 2
{
end_at : { [Op.lt]: Sequelize.fn('NOW') },
deleted_at : null
}
]
}
唯一的重点是乘法 - 不确定如何/是否有办法在没有文字的情况下做到这一点......
HTH
关于node.js - 我如何在 sequelizejs 中使用这个完整的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57049485/