如何使用Angular Material Data Table中的filterPredicate过滤开始日期和结束日期之间的数据?

时间:2018-09-03 06:50:31

标签: angular angular-material angular-datatables

在我的数据表中,我有一个开始日期列和一个结束日期列。我需要过滤掉开始日期和结束日期之间表格中的数据。 并使用此post,我能够编写过滤器谓词。但是它仅过滤确切的开始日期和确切的结束日期。 API以字符串格式(例如“ 2018-08-30”)返回日期。 那么,如何过滤开始日期和结束日期之间的数据?

1 个答案:

答案 0 :(得分:1)

首先,您需要添加范围过滤器,或者在查询中添加范围必须以获取所需日期之间的结果集。一旦获得正确的结果集,就可以根据需要聚合和过滤数据。

POST _search
{
    "query": {
        "bool": {
          "filter": [
            {
              "range": {
                "endDate": {
                  "gte": "2018-07-30",
                  "format": "yyyy-MM-dd"
                }
              }
            },
            {
              "range": {
                "startDate": {
                  "lte": "2018-08-30",
                  "format": "yyyy-MM-dd"
                }
              }
            }
          ]
        }
    }
}

希望这可以解决您的问题。