Github user walterddr commented on a diff in the pull request:

    https://github.com/apache/flink/pull/6188#discussion_r199352237
  
    --- Diff: 
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/api/scala/expressionDsl.scala
 ---
    @@ -1029,6 +1029,29 @@ object temporalOverlaps {
         TemporalOverlaps(leftTimePoint, leftTemporal, rightTimePoint, 
rightTemporal)
       }
     }
    +/**
    +  * Adds a (signed) integer interval to a timestamp. The unit for the 
interval is given
    +  * by the unit argument, which should be one of the following values: 
"SECOND", "MINUTE",
    +  * "HOUR", "DAY", "WEEK", "MONTH", "QUARTER" or "YEAR".
    +  *
    +  * e.g. timestampAdd("WEEK", 1, '2003-01-02'.toDate) leads to 
"2003-01-09".
    +  */
    +object timestampAdd {
    +
    +  /**
    +    * Adds a (signed) integer interval to a timestamp. The unit for the 
interval is given
    +    * by the unit argument, which should be one of the following values: 
"SECOND", "MINUTE",
    +    * "HOUR", "DAY", "WEEK", "MONTH", "QUARTER" or "YEAR".
    +    *
    +    * e.g. timestampAdd("WEEK", 1, '2003-01-02'.toDate) leads to 
"2003-01-09".
    +  */
    +  def apply(
    +      unit: Expression,
    --- End diff --
    
    +1 for this approach that directly specifies the interval literals. 
    
    Regarding Quarter. It seems like a very old implementation and we should 
probably use `"1970-01-01".toDate.extract(TimeIntervalUnit.QUARTER)` to make it 
consistent with all other time unit extractions. What do you guys think?
    
    I just tried it out by modifying the `Extract` method and it seems working 
perfectly.


---

Reply via email to