Flink SQL - 如何使用自定义模式解析 TIMESTAMP?

Flink SQL - How to parse a TIMESTAMP with custom pattern?

从文档看来 Flink 的 SQL 只能解析特定格式的时间戳,即:

TIMESTAMP string: Parses a timestamp string in the form "yy-mm-dd hh:mm:ss.fff" to a SQL timestamp.

有什么方法可以传入自定义 DateTimeFormatter 来解析不同类型的时间戳格式吗?

您可以使用用户定义的标量函数 (UDF) 实现任何解析逻辑。

这在 Scala 中看起来如下。

class TsParser extends ScalarFunction {
  def eval(s: String): Timestamp = {
    // your logic
  }
}

定义函数后,必须在 TableEnvironment:

处注册
tableEnv.registerFunction("tsParser", new TsParser())

现在您可以像使用任何内置函数一样使用函数 tsParser

详情见documentation