我是环回的新手。我有一个日期列start_date与DATE数据类型。 当我尝试获取大于或小于start_date上的操作的数据时,但是当我试图获取等于日期的数据时它不起作用:
以下是我的提取部分:
它的工作:
app.models.goals.find({where: {
start_date: {gt:'2016-03-31'}
}}, function(err, res) {
});
它不起作用:
app.models.goals.find({where: {
start_date: '2016-03-31'
}}, function(err, res) {
});
数据存在于2016-03-31的DB中,但是空响应。是否有任何语法错误。请帮我解决这个问题。
答案 0 :(得分:0)
我认为语法没有问题。我在Strongloop API Explorer和loopback Node.JS API中尝试了相同的语法,并发现它正常工作。
然而,在检查这些时,我注意到当日期字符串中没有时间和TZ信息时,在本地时区假定时间部分为00.00.00。例如,当我在我的" Sandbox"上使用以下代码时模型:
Sandbox.find({where: {myDateProp:'2016-04-2'}}, function(err, res){
console.log('results are %j', res);
next();
});
检索到的结果记录包含:
Retreived results are [{"myStringProp":"String5","myDateProp":"2016-04-01T18:30:00.000Z","id":"56fc1dc6b9de1a6b06750b98"}]
请注意,我对2016-04-2的搜索实际上与2016-04-01 6:30 PM的记录匹配,这是GMT相当于2016-04-2 00:00:00 IST。
我猜这可能与您观察到的行为有关。我建议您检查数据库中记录的start_date
的日期值。然后,如有必要,将时间和时区信息添加到代码中的过滤器中。