Flink 的 TO_TIMESTAMP 函数用的是 Java SimpleDateFormat 来解析时间格式的,所以可以看下
SimpleDateFormat 的 javadoc。
你可以试下 to_timestamp('2020-09-23T20:58:24+08:00',
'yyyy-MM-dd''T''HH:mm:ssXXX') 来解析你的数据。

Best,
Jark

On Wed, 23 Sep 2020 at 21:08, chenxuying <[email protected]> wrote:

> flinksql 版本是1.11.2
> source接收到字段是字符串类型的时间
> CREATE TABLE sourceTable (
>      `time` STRING
>  ) WITH(
> ...
>  );
>
>
> sink如下
> CREATE TABLE sinktable (
>     `time1` STRING,
>     `time` TIMESTAMP(3)
>  ) WITH (
>      'connector' = 'print'
>  );
>
>
> insert语句,不知道怎么正确修改TO_TIMESTAMP默认的格式
>  insert into sinktable select
> `time`,TO_TIMESTAMP(`time`,'yyyy-MM-ddTHH:mm:ss+08:00') from sourceTable
>
>
> 报错说是format错误
> Caused by: java.lang.IllegalArgumentException: Unknown pattern letter: T
> at
> java.time.format.DateTimeFormatterBuilder.parsePattern(DateTimeFormatterBuilder.java:1663)
> at
> java.time.format.DateTimeFormatterBuilder.appendPattern(DateTimeFormatterBuilder.java:1572)
> at java.time.format.DateTimeFormatter.ofPattern(DateTimeFormatter.java:534)

回复