[
https://issues.apache.org/jira/browse/FLINK-30924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17686571#comment-17686571
]
Feng Jin commented on FLINK-30924:
----------------------------------
[~martijnvisser]
> I don't think that a BIGINT value is always time zone independent. It depends
> on the incoming data, right?
Maybe that's right, But most of the scenarios I've come across where the BIGINT
value is an absolute number of seconds.
And, Here is a description of the TO_TIMESTAMP function, It is clearly stated
here that the string should under the 'UTC+0' time zone
> Converts date time string string1 with format string2 (by default:
> ‘yyyy-MM-dd HH:mm:ss’) under the ‘UTC+0’ time zone to a timestamp.
> 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
> Priority: Major
>
> 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)