[jira] [Created] (FLINK-16938) SqlTimestamp has lag when convert long to Timestamp

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-16938) SqlTimestamp has lag when convert long to Timestamp

Shang Yuanchun (Jira)
YufeiLiu created FLINK-16938:
--------------------------------

             Summary: 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


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)