I'm trying to make this query:
SELECT * FROM TABLEA AS A WHERE YEAR(A.dateField)='2016'
How can I perfome this query above in sequelize style?
TABLEA.findAll({
where:{}//????
}
Thanks!
TABLEA.findAll({
where: sequelize.where(sequelize.fn('YEAR', sequelize.col('dateField')), 2016)
});
You have to use .where
here, because the lefthand side of the expression (the key) is an object, so it cannot be used in the regular POJO style as an object key.
If you want to combine it with other conditions you could do:
TABLEA.findAll({
where: {
$and: [
sequelize.where(sequelize.fn('YEAR', sequelize.col('dateField')), 2016),
{ foo: 'bar' }
]
}
});
https://sequelize.org/v3/docs/querying/#operators
you have to add the date_part
function to your query:
sequelize.where(sequelize.fn("date_part",'year',sequelize.col('dateField')), 2020)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With