Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何选择从startdate到enddate开始的sequelize数据(意味着不包括enddate)_Javascript_Mysql_Date_Couchdb_Sequelize.js - Fatal编程技术网

Javascript 如何选择从startdate到enddate开始的sequelize数据(意味着不包括enddate)

Javascript 如何选择从startdate到enddate开始的sequelize数据(意味着不包括enddate),javascript,mysql,date,couchdb,sequelize.js,Javascript,Mysql,Date,Couchdb,Sequelize.js,我有数据集。数据集的属性之一是“时间戳”。我想选择(有效地)从某个开始日期到某个结束日期具有时间戳的数据集。但是,不应包括结束日期本身。所以基本上我想要这个:dataSet,其中timestamp>=startDate和timestamp

我有数据集。数据集的属性之一是“时间戳”。我想选择(有效地)从某个开始日期到某个结束日期具有时间戳的数据集。但是,不应包括结束日期本身。所以基本上我想要这个:
dataSet,其中timestamp>=startDate和timestamp

我有一个couchDB,我想用sequelize进行选择

假设开始和结束日期如下所示:

var startDate = '2015-07-29 00:00:00';
var endDate = '2015-07-30 00:00:00';
然后,从这些日期开始的所有内容都应包括在内:

2015-07-29 00:00:00 (<--startDate)
2015-07-29 00:00:01
2015-07-29 00:00:02
....
2015-07-29 23:59:59 (<--my desired end-Date. It's right before endDate)
这给我提供了带有时间戳的数据集,包括开始日期和结束日期。我只想知道截止日期。不包括结束日期本身

而下面的查询应该给出正确的结果(dataSet>=startDate和dataSet 这会给我错误的结果。(很抱歉,由于我现在无法访问系统,因此无法在此详细说明。我记得它没有返回我想要的结果。我将在可以再次访问数据库时更新此部分。)


我知道我可以将enddate设置为
2015-07-29 23:59:59
。但是我觉得有一种更优雅的方法。

第二个示例不起作用,因为对象中有两个相同的键(时间戳)。这在javascript中是不允许的,因此其中一个被忽略

您应该将这两个代码包装在
$和
中:

db.answer.findAll({
  where: {
    id: {in: [myId]},
    $and: [
      { timestamp: {gte: startDate} },
      { timestamp: {lt: endDate} }
    ]
  }
});

我不知道sequelize,但是couchdb提供了一个参数
inclusive\u end
,可以在文档中找到:


也许这是一个解决方案的起点。

您是否尝试过在
之间的
中使用
endDate-1
?@vivekpansara,谢谢您的回答。我正在寻找一种更优雅的方法。可能是查询或运算符(例如。“
  db.answer.findAll({
      where: {id: { in: [myId]},
             timestamp: { gte: startDate},
             timestamp: { lt: endDate}
           }
db.answer.findAll({
  where: {
    id: {in: [myId]},
    $and: [
      { timestamp: {gte: startDate} },
      { timestamp: {lt: endDate} }
    ]
  }
});