[ https://issues.apache.org/jira/browse/FLINK-26945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17703680#comment-17703680 ]
Timo Walther commented on FLINK-26945: -------------------------------------- I see the problem is that this is rather an internal conversion that has nothing to do with SQL semantics. Semantically you cannot cast a DATE to INT. In this case I would go with the ExpressionEvaluatorFactory approach. You don't need to go through LocalDateTime. The DataType that can be passed into ExpressionEvaluatorFactory.createEvaluator supports the conversion classes of DataType. Thus, you can directly request `DataTypes.DATE().notNull().bridgedTo(int.class)`. > Add DATE_SUB supported in SQL & Table API > ----------------------------------------- > > Key: FLINK-26945 > URL: https://issues.apache.org/jira/browse/FLINK-26945 > Project: Flink > Issue Type: Sub-task > Components: Table SQL / API > Reporter: dalongliu > Priority: Major > Labels: pull-request-available > Fix For: 1.17.0 > > > Returns the date {{numDays}} before {{{}startDate{}}}. > Syntax: > {code:java} > date_sub(startDate, numDays) {code} > Arguments: > * {{{}startDate{}}}: A DATE expression. > * {{{}numDays{}}}: An INTEGER expression. > Returns: > A DATE. > If {{numDays}} is negative abs(num_days) are added to {{{}startDate{}}}. > If the result date overflows the date range the function raises an error. > Examples: > {code:java} > > SELECT date_sub('2016-07-30', 1); > 2016-07-29 {code} > See more: > * > [Spark|https://spark.apache.org/docs/latest/sql-ref-functions-builtin.html#date-and-timestamp-functions] > * [Hive|https://cwiki.apache.org/confluence/display/hive/languagemanual+udf] -- This message was sent by Atlassian Jira (v8.20.10#820010)