[ https://issues.apache.org/jira/browse/FLINK-16938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17074506#comment-17074506 ]
Jark Wu commented on FLINK-16938: --------------------------------- Hi [~liuyufei], TIMESTAMP(3) is also called TIMESTAMP(3) WITHOUT TIME ZONE which has the same semantic with JDK's LocalDateTime. The "ts.rowtime" support BIGINT ts is a mistake design from my point of view. It should only support TIMESTAMP, or TIMESTAMP WITH LOCAL TIME ZONE IMO. > SqlTimestamp has lag when convert long to Timestamp > --------------------------------------------------- > > Key: FLINK-16938 > URL: https://issues.apache.org/jira/browse/FLINK-16938 > Project: Flink > Issue Type: Bug > Components: Table SQL / Planner > Affects Versions: 1.10.0 > Reporter: YufeiLiu > Priority: Major > > When I set rowtime attribute by using expression 'column.rowtime' , and > result type is sql.Timestamp, the result will have lag which is equals with > default timezone offset. > {code:java} > tEnv.fromDataStream(stream, "user_action_time.rowtime, user_name, data"); > {code} > I look into the conversion logic, the field was go through 'long -> > SqlTimestamp -> Timestamp' conversion. > {code:java} > long from = System.currentTimeMillis(); > long to = SqlTimestamp > .fromEpochMillis(from) > .toTimestamp() > .getTime(); > {code} > The result is {{from!=to}}. In {{SqlTimestamp.toTimestamp()}} using > {{Timestamp.valueOf(LocalDateTime dateTime)}} which is contain timezone > infomation, will casue time lag. > From Timestamp to Timestamp not have this issue, but convert Datastream to > Table is use StreamRecord.timestamp as rowtime field. -- This message was sent by Atlassian Jira (v8.3.4#803005)