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

Julian Hyde commented on CALCITE-5039:
--------------------------------------

The SQL TIMESTAMP type is zoneless. For example, the value '2022-03-14 
00:00:00' is not in UTC or GMT+8. The timezone is left to the interpretation of 
the client.

When you access a SQL TIMESTAMP column via JDBC, use the 
{{ResultSet.getTimestamp(int, Calendar)}} method and it will return a 
java.sql.Timestamp (whose value is relative to UTC epoch) on the assumption 
that the column value is in the same time zone as the Calendar object you 
supply.

Which is to say: there's probably not a bug; you probably don't understand the 
complexities of timezones in SQL and JDBC.

> View:Timestamp cannot query Data:Long in GMT+8 TimeZone Env
> -----------------------------------------------------------
>
>                 Key: CALCITE-5039
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5039
>             Project: Calcite
>          Issue Type: Bug
>          Components: core, jdbc-driver
>    Affects Versions: 1.29.0, 1.30.0
>            Reporter: itxiangkui
>            Priority: Major
>              Labels: TimeZone, Timestamp
>
> When I have a row like :
> |ts:TimeStamp|channel:String|pv:Long|
> |1647187200000|ios|10|
>  
> while 1647187200000 is a timestamp in TimeZone of "GMT+8",the datetime is 
> "2022-03-14 00:00:00"
> but you can not query the data using a sql like :
> ```sql
> select * from table where ts='2022-03-14 00:00:00';
> select * from table where ts<'2022-03-14 00:00:01' and  ts>'2022-03-13 
> 23:59:59'  and channel='ios';
> ```
> it is like the jdbc-fether will filter the data when match the 
> timestampString,while the timestamp String looks like '2022-03-13 16:00:00' 
> or '2022-03-14 08:00:00'
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to