我正在研究hbase数据库,并使用apachephoenix使用普通sql查询访问hbase。
我在表中有两列,其中保存了varchar和date中的当前utc时间戳。加载一些数据后,当我查询回hbase时,我得到了日期类型的event timestamp列的奇怪结果。
Event UTC (Date) :2017-01-13 16:36:59.0
Event UTC (varchar):2017-01-13 21:36:59
以上两个值应该是相同的,但在查询back event utc(date)列时,每个记录都会给出错误的结果,即正好落后5小时。我不知道这个问题是从哪里来的,我没有保存任何时区信息,而且我知道java util或sql timestamp不存储任何时区信息,但是在运行查询时会与结果集数据混淆。请帮我解决这个问题
1条答案
按热度按时间mnowg1ta1#
很可能是因为客户所在的时区。
来自官方文件
时间戳类型:
内部表示基于自epoch以来的毫秒数(以gmt为单位),而java.sql.timestamp将基于客户端的本地时区格式化时间戳。