You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Feng Jin (Jira)" <ji...@apache.org> on 2023/02/06 11:41:00 UTC

[jira] [Created] (FLINK-30924) Conversion issues between timestamp and bingint

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)