[ 
https://issues.apache.org/jira/browse/FLINK-30924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684764#comment-17684764
 ] 

Martijn Visser edited comment on FLINK-30924 at 2/6/23 3:37 PM:
----------------------------------------------------------------

[~hackergin] The used timezone in {{FROM_UNIXTIME}} should depend on the 
defined session time zone as mentioned in the docs 
https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/functions/systemfunctions/

{code:java}
The return value is expressed in the session time zone (specified in 
TableConfig). E.g., FROM_UNIXTIME(44) returns ‘1970-01-01 00:00:44’ if in UTC 
time zone, but returns ‘1970-01-01 09:00:44’ if in ‘Asia/Tokyo’ time zone.
{code}




was (Author: martijnvisser):
[~hackergin] The used timezone in {{FROM_UNIXTIME}} depends on the defined 
session time zone as mentioned in the docs 
https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/functions/systemfunctions/

{code:java}
The return value is expressed in the session time zone (specified in 
TableConfig). E.g., FROM_UNIXTIME(44) returns ‘1970-01-01 00:00:44’ if in UTC 
time zone, but returns ‘1970-01-01 09:00:44’ if in ‘Asia/Tokyo’ time zone.
{code}



> 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)

Reply via email to