Привет, я пробую следующий код:
let result = await models.booking.findAll({
attributes: [
'id'
],
where: {
[Op.and]: [
sequelize.where(sequelize.fn('TIMESTAMPDIFF', sequelize.literal('HOUR'), sequelize.fn("NOW"), sequelize.col('createdAt')), {
[Op.gte]: 1
}),
{
createdAt: {
[Op.eq]: sequelize.col('updatedAt')
}
}
]
}
})
Это выполняет следующий запрос
SELECT `id` FROM `bookings` AS `booking` WHERE
(`booking`.`deletedAt` IS NULL AND (TIMESTAMPDIFF(HOUR, NOW(), `createdAt`) >= 1 AND `booking`.`createdAt` = `updatedAt`));
, который вернул пустой массив (результат) в то время как в db отлично вернулся строк.
Решение:
where: {
createdAt: {[Op.eq]: sequelize.col('updatedAt')},
[Op.and]: sequelize.where(sequelize.fn('TIMESTAMPDIFF',sequelize.literal('HOUR'), sequelize.col('createdAt'), sequelize.fn("NOW")), {[Op.gte]: 1})
}