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

问题描述 投票:1回答:1

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

angular angular-material angular-datatables
1个回答
1
投票

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

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"
                }
              }
            }
          ]
        }
    }
}

希望这能解决你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.