I use "sequelize": "^2.0.0-rc3" with pg (postgresql), in this moment i am trying to do a raw query with date range but sequelize don't return data.
When I run the same query in postgresql db get correct results. Please Help Me.
In sequilize:
// Init main query
var query = "SELECT * FROM" + '"Calls"' +
" WHERE " + '"EquipmentId"' + " = 1" +
" AND " + '"initDate"' + " >= " + "'2015-02-05 14:40' " +
" AND " + '"endDate"' + " <= " + " '2015-02-05 15:00' ";
global.db.sequelize.query(query)
.then(function(calls) {
console.log(calls);
})
.error(function (err) {
console.log(err);
});
In console of node server I get.
Executing (default): SELECT * FROM "Calls" WHERE "EquipmentId" = 1 AND "initDate" >= '2015-02-05 14:40' AND "endDate" <= '2015-02-05 15:00'
But empty array calls...
Try this:
var query = ' \
SELECT * FROM "Calls" \
WHERE "EquipmentId" = :EquipmentId \
AND "initDate" >= :initDate \
AND "endDate" <= :endDate; \
';
global.db.sequelize.query(query, null, {raw: true}, {
EquipmentId: 1,
initDate: new Date('2015-02-05 14:40'),
endDate: new Date('2015-02-05 15:00')
})
.then(function(calls) {
console.log(calls);
})
.error(function (err) {
console.log(err);
});
You can also use sequelize function like findAll
Model.findAll(
where : {
gte:sequelize.fn('date_format', initDate, '%Y-%m-%dT%H:%i:%s'),
lte:sequelize.fn('date_format', endDate, '%Y-%m-%dT%H:%i:%s')
}
)
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