gpt4 book ai didi

mysql - Sequelize 为 DATE 类型创建 SQL

转载 作者:行者123 更新时间:2023-11-29 16:46:43 25 4
gpt4 key购买 nike

我正在将sequelize与mysql一起使用,我想知道是否有一种方法可以使用sequelize来创建这样的SQL:

SELECT * FROM table WHERE DAY(dateAttribute) = 'chosen_day'
SELECT * FROM table WHERE MONTH(dateAttribute) = 'chosen_month'

我尝试过做这样的事情:

this.test= function () {
let searchingDate = "2017-05%";
return model.table.findAll({
where: {
dateAttribute: searchingDate
}
})
}

这可行,但它会发出弃用警告,表示它将在未来版本中删除。

感谢您的帮助!

最佳答案

找到解决方案!

所以我将sequelize.fn()与sequ​​elize中的Op.and函数一起使用。所以解决方案是:

this.test = function () {
return model.tableName.findAll({
attributes: ['myAttribute'],
where: {
dateAttribute: {
[sequelize.Op.and]: [
sequelize.where(sequelize.fn('MONTH', sequelize.col('dateAttribute')), 5),
sequelize.where(sequelize.fn('DAY', sequelize.col('dateAttribute')), 5),
]
},
otherAttribute: 'someValue'
}
})
}

此代码生成此 SQL 查询:

SELECT myAttribute FROM tableName WHERE (MONTH('dateAttribute') = 5 AND DAY('dateAttribute') = 5) AND otherAttribute = 'someValue'

我希望能让你们免于进行我所做的这项漫长的研究!记住要快乐!

关于mysql - Sequelize 为 DATE 类型创建 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53052063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com