我正在使用Sequelize和sqlite3,但无法根据“日期”类型列查询数据。
这是我的模型定义:
var sensorData = sequelize.define('Data',
{
time: Sequelize.DATE,
value: Sequelize.FLOAT,
type: Sequelize.STRING,
source: Sequelize.STRING
},
{
timestamps : false
});
现在我希望在此函数中以比给定时间晚的'time'获取所有记录:
function selectData(start_date, num_of_records, callback)
{
sensorData.findAll({
limit: num_of_records,
where: [time, '???'], <====== How to specify the condition here?
order: 'time'}).success(callback);
}
我在Sequelize的网站上找不到任何关于基于'日期'类型的查询语句的内容。
有什么想法吗?
答案 0 :(得分:4)
就像Soumya所说,您可以使用$gt
,$lt
,$gte
或$lte
并注明日期:
model.findAll({
where: {
start_datetime: {
$gte: new Date()
}
}
})
答案 1 :(得分:0)
您可以像这样使用sequelize.fn
:
where:{timestamp: gte:sequelize.fn('date_format', fromDate, '%Y-%m-%dT%H:%i:%s')
,lte:sequelize.fn('date_format', toDate, '%Y-%m-%dT%H:%i:%s')
}