javascript - 从alasql中日期范围之间的对象数组获取数据

标签 javascript alasql

我正在使用alasql从JavaScript中的对象数组中获取给定日期范围内的数据。 我尝试了下面的查询,但没有得到任何结果。我正在传递开始日期结束日期,并且我只想要这些范围之间的数据,如果有任何其他方法可以做到这一点,那么它也会帮助我。请帮助我做到这一点, 提前致谢

startTime = Sun Mar 27 2016 00:00:00 GMT+0530 (India Standard Time)
endTime = Sat Apr 02 2016 00:00:00 GMT+0530 (India Standard Time)

data= [
{
  name:'Sam',
  reportDate:'3/25/2016 16:34:00 PM'
},{
  name:'Mac',
  reportDate:'3/27/2016 10:26:00 PM'
},{
  name:'Sandy',
  reportDate:'3/30/2016 19:14:00 AM'
},{
  name:'Smith',
  reportDate:'4/2/2016 14:54:00 PM'
},{
  name:'Warner',
  reportDate:'4/4/2016 17:04:00 AM'
},{
  name:'Finch', 
  reportDate:'3/28/2016 11:20:00 PM'
}
]

alasql("SELECT * from ?   WHERE DATE([[0].reportDate]) >=" + startDate + "AND DATE([[0].reportDate]) <= " + endDate + "", [data]);

最佳答案

试试这个:

var startDate = '2016-03-27';
var endDate = '2016-04-02';

var data = [
{
  name:'Sam',
  reportDate:'3/25/2016 16:34:00 PM'
},{
  name:'Mac',
  reportDate:'3/27/2016 10:26:00 PM'
},{
  name:'Sandy',
  reportDate:'3/30/2016 07:14:00 AM'
},{
  name:'Smith',
  reportDate:'4/2/2016 02:54:00 PM'
},{
  name:'Warner',
  reportDate:'4/4/2016 05:04:00 PM'
},{
  name:'Finch', 
  reportDate:'3/28/2016 11:20:00 PM'
}
];
var result = alasql("SELECT * from ?   WHERE DATE(reportDate) >= DATE('" + startDate +"') AND DATE(reportDate) <= DATE('" + endDate + "')", [data]);
document.body.innerHTML = JSON.stringify(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/alasql/0.2.5/alasql.min.js"></script>

关于javascript - 从alasql中日期范围之间的对象数组获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36422566/

相关文章:

javascript - 为什么 String.raw 可以处理双反斜杠但常规转义不能?

excel - alasql 需要已包含的 xlsx

javascript - 异步在摘要阶段运行

angularjs - 如何使用 ALASQL 和 XLSX 设置自定义 header 名称

node.js - 使用 npm 安装开发版本

javascript - Leaflet - 如何根据公共(public)属性设计不同的 geoJson 功能?

javascript - CSS + HTML 自定义形状按钮

javascript - 设置 3d 立方体旋转原点

javascript - 需要帮助将对象值作为 jQuery 选择器拉入

javascript - Alasql 未定义