[英]Get First Row where ColA = Name, ColB = SecondName and ColC = null(is empty)
[英]Mimic where [condition] between [colA] and [colB] sequelize
寻求在 sequelize 中复制以下 mssql 操作的帮助。 我们有一个包含 valid_from 和 valid_to 列的表,我需要获取今天的当前日期,并且只返回基于该日期的记录。
我希望在 sequelize 中使用 .findByPK() 或 .findAll() 方法
SELECT * FROM [table] WHERE GETUTCDATE() BETWEEN f.valid_from AND f.valid_to
我发现以下帖子和项目没有运气。 因为他们似乎在同一列之间指定了两个不同的日期。 我需要比较两个不同列之间的当前 UTCDATE
我能够模拟,但仍然想知道是否有人知道如何使用between
运算符做同样的事情
const now = new Date();
return await models.Form.findAll({
where: {
valid_from: {
[Op.lte]: Sequelize.cast(now, 'DATETIMEOFFSET')
},
[Op.and]: {
validTo: {
[Op.gte]: Sequelize.cast(now, 'DATETIMEOFFSET')
}
}
}
});
您可以使用sequelize.where()
编写此查询来为 BETWEEN 操作生成 WHERE 语句。 对于当前时间戳,您需要调用GETUTCDATE()
,我们可以通过sequelize.fn()
进行。
const forms = await models.Form.findAll({
where: {
// create where condition for GETUTCDATE()
sequelize.where(sequelize.fn('GETUTCDATE'), {
// BETWEEN valid_from AND validTo
[Op.between]: [
sequelize.col('valid_from'),
sequelize.col('validTo')
],
}),
},
});
这将生成 SQL ,如:
SELECT * FROM `form`
WHERE GETUTCDATE() BETWEEN `valid_from` AND `validTo`
请注意,您在示例中强调了
valid_from
和 camelCasevalidTo
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.