我正在尝试将此sql实现到我的sequelize
SELECT file_id FROM table WHERE datediff(curdate(),create_date) > 5;
Here is my sequelize
findOverPeriodFile: function () {
return table.findAll({
where:{
60: {lt: Sequelize.fn('')}
}
});
}
我是seuelize的新手,我试图搜索谷歌,但它没有任何帮助。任何人都有这种情况的答案?我不知道该把什么放在续集的声明中?抱歉我的英语不好。
答案 0 :(得分:4)
你走了:
您可以使用
生成WHERE datediff(curdate(),create_date) > 5;
{
where: sequelize.where(sequelize.fn('datediff', sequelize.fn("NOW") , sequelize.col('create_date')), {
$gt : 5 // OR [Op.gt] : 5
})
}
答案 1 :(得分:0)
sequelize.where(sequelize.fn('datediff', sequelize.literal("day"), sequelize.col('Your Column date'), sequelize.fn("getdate")), {
[Op.gt]: 0
})
答案 2 :(得分:0)
sequelize.where(
sequelize.fn(
'timestampdiff',
sequelize.literal("minute"),
sequelize.col('updatedAt'),
sequelize.literal('CURRENT_TIMESTAMP')
),
{
[Op.gte] : ACCEPTION_TIMEOUT
}
)
如果像我这样的人正在寻找一种方法来找到续集的日期或时间差(不仅是几天),那么 timestampdiff 是一种可行的方法。
sequelize.literal("minute")
-是时间单位。关于here
sequelize.col('updatedAt')
-数据库中的列(日期时间)
sequelize.literal('CURRENT_TIMESTAMP')
-将当前时间的文字序列化
{
[Op.gte] : ACCEPTION_TIMEOUT
}
这是您选择时间的条件
答案 3 :(得分:0)
对于 Microsoft SQL Server (MSSQL) 这个对我有用。感谢@Vivek Doshi
z = [s.strip(" ") for s in z1]
return z
这将生成
let pending = await Table.findAll({
where: {
[Op.and] : [
Sequelize.where(Sequelize.fn('datediff', Sequelize.col('DD'), Sequelize.col('createdAt'), Sequelize.fn("GETDATE")), {
[Op.lt] : 1
}) ,
{ is_processed : '0' }
]
}
} );
这正是我想要的