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