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)