[
https://issues.apache.org/jira/browse/FLINK-16938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17074220#comment-17074220
]
Jark Wu edited comment on FLINK-16938 at 4/3/20, 2:34 AM:
----------------------------------------------------------
Hi [~liuyufei], I'm interested why you want to use {{SqlTimestamp}} ?
{{SqlTimestamp}} is an internal data structure to represent TIMESTAMP type,
which is equal to Java's LocalDateTime.
The converntion from LocalDateTime to Timestamp is delegated to JDK's
implementation {{Timestamp.valueOf(LocalDateTime)}} which keeps the equal
string representation, not the underlying millisecond.
cc [~docete]
was (Author: jark):
Hi [~liuyufei], I'm interested why you want to use {{SqlTimestamp}} ?
{{SqlTimestamp}} is an internal data structure to represent TIMESTAMP type,
which is equal to Java's LocalDateTime.
The converntion from LocalDateTime to Timestamp as delegate to JDK's
implementation {{Timestamp.valueOf(LocalDateTime)}} which keeps the equal
string representation, not the underlying millisecond.
cc [~docete]
> 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)