@Override
  public boolean equals(Object obj) {
    if (!(obj instanceof GroupByTimeParameter)) {
      return false;
    }
    GroupByTimeParameter other = (GroupByTimeParameter) obj;
    return this.startTime == other.startTime
        && this.endTime == other.endTime
        && this.interval.equals(other.interval)
        && this.slidingStep.equals(other.slidingStep)
        && this.leftCRightO == other.leftCRightO;
  }
The parameter of `GROUP BY TIME`.

<p>Remember: interval and slidingStep is always in timestamp unit before transforming to
timeRangeIterator even if it's by month unit.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/GroupByTimeParameter.java