环回等于日期不起作用

时间:2016-03-30 07:28:38

标签: node.js postgresql loopbackjs

我是环回的新手。我有一个日期列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中,但是空响应。是否有任何语法错误。请帮我解决这个问题。

1 个答案:

答案 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的日期值。然后,如有必要,将时间和时区信息添加到代码中的过滤器中。