Feng Jin created FLINK-30924:
--------------------------------

             Summary: Conversion issues between timestamp and bingint
                 Key: FLINK-30924
                 URL: https://issues.apache.org/jira/browse/FLINK-30924
             Project: Flink
          Issue Type: Bug
          Components: Table SQL / API
    Affects Versions: 1.16.1
            Reporter: Feng Jin


When casting to convert timestamp and bigint, the following exception is 
thrown: 
{code:java}
//代码占位符
org.apache.flink.table.api.ValidationException: The cast from NUMERIC type to 
TIMESTAMP type is not allowed. It's recommended to use 
TO_TIMESTAMP(FROM_UNIXTIME(numeric_col)) instead, note the numeric is in 
seconds.

{code}
However, the FROM_UNIXTIME function will use the local time zone for 
conversion, but the TO_TIMESTAMP function will not use the local time zone but 
will use the UTC time zone conversion, so that the actual result  in the  wrong 
result.

 

The following is an example of the results of the test
{code:java}
//代码占位符

Flink SQL> SET 'table.local-time-zone' = 'Asia/Shanghai';
Flink SQL> select TO_TIMESTAMP(FROM_UNIXTIME(0));

// result 
                 EXPR$0
 1970-01-01 08:00:00.000

{code}
  

 

UNIX_TIMESTAMP(CAST(timestamp_col AS STRING)) has the same problem. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to