Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Vertica时间戳和夏令时_Sql_Jdbc_Timestamp_Vertica - Fatal编程技术网

Sql Vertica时间戳和夏令时

Sql Vertica时间戳和夏令时,sql,jdbc,timestamp,vertica,Sql,Jdbc,Timestamp,Vertica,我在Vertica遇到了一个非常奇怪的问题,与夏令时有关 查询将时间戳存储为不带时区的时间戳(6)的表时,作为时间戳返回的时间和转换为varchar返回的时间彼此相差一小时,因为时间会受到夏令时的影响。返回的时间戳应该在一小时后返回;将时间戳转换为varchar将产生正确的结果 例如: -- query select time_, time_::varchar from <table_name> where time_ = '2016-03-13 02:38:01.914999'

我在Vertica遇到了一个非常奇怪的问题,与夏令时有关

查询将时间戳存储为不带时区的时间戳(6)的表时,作为时间戳返回的时间和转换为varchar返回的时间彼此相差一小时,因为时间会受到夏令时的影响。返回的时间戳应该在一小时后返回;将时间戳转换为varchar将产生正确的结果

例如:

-- query
select time_, time_::varchar
from <table_name>
where time_ = '2016-03-13 02:38:01.914999'

-- result
timestamp:                      converted to varchar:
'2016-03-13 03:38:01.914999'    '2016-03-13 02:38:01.914999'
              |                               |
              |                               |
              v                               v
        this is wrong           this is the desired behavior
我怎样才能得到想要的行为?为了清楚起见,我希望“选择时间”返回“选择时间::varchar”返回的内容

谢谢大家!


更新:根据@mauro和@woot提供的非常有用的反馈,这可能是Vertica JDBC驱动程序版本7.1.2-0中的一个已知错误,并且可能在以后的版本中有修复(7.1.2-17;请参阅)。我正在尝试从HP获得此修补程序(HP仅正式向企业客户提供修补程序),如果成功,将更新此线程

同时,这里有一个更简单的查询,它是问题的核心,可以更容易地重现:

-- query
select
  to_timestamp('2016-03-13 02:38:01', 'yyyy-mm-dd HH:MI:SS'),
  to_timestamp('2016-03-13 02:38:01', 'yyyy-mm-dd HH:MI:SS')::varchar

-- result obtained in VSQL (CORRECT):
'2016-03-13 02:38:01.0'    '2016-03-13 02:38:01'

-- result obtained via JDBC driver release 7.1.2-0 (INCORRECT):
'2016-03-13 03:38:01.0'    '2016-03-13 02:38:01'

两个问题:(1)使用vsql是否存在同样的问题?(2) 哪个Vertica版本?@mauro在
vsql
问题上击败了我。我想肯定地知道。另外,docker映像是7.1.1。JDBC驱动程序中修复了
timestamptz
的一个bug,但您是说您没有使用它。如果您发现
vsql
有效,您可以尝试不同的jdbc驱动程序。(1)非常有趣-这个问题在vsql中没有发生!那么这似乎是JDBC驱动程序的问题?(2) Vertica Community Edition 7.1.1I刚刚更新到最新的驱动程序(Vertica-jdbc-7.1.2-0.jar,下载自),问题仍然存在。我们不确定这是否是jdbc的问题,但可以肯定的是“客户端”有两个问题:(1)使用vsql时是否存在同样的问题?(2) 哪个Vertica版本?@mauro在
vsql
问题上击败了我。我想肯定地知道。另外,docker映像是7.1.1。JDBC驱动程序中修复了
timestamptz
的一个bug,但您是说您没有使用它。如果您发现
vsql
有效,您可以尝试不同的jdbc驱动程序。(1)非常有趣-这个问题在vsql中没有发生!那么这似乎是JDBC驱动程序的问题?(2) Vertica Community Edition 7.1.1I刚刚更新到最新的驱动程序(Vertica-jdbc-7.1.2-0.jar,下载自),问题仍然存在。我们不确定这是否是jdbc的问题,但肯定是“客户端”的问题
-- query
show timezone

-- result
name:         setting:
'timezone'    'UTC'
-- query
select
  to_timestamp('2016-03-13 02:38:01', 'yyyy-mm-dd HH:MI:SS'),
  to_timestamp('2016-03-13 02:38:01', 'yyyy-mm-dd HH:MI:SS')::varchar

-- result obtained in VSQL (CORRECT):
'2016-03-13 02:38:01.0'    '2016-03-13 02:38:01'

-- result obtained via JDBC driver release 7.1.2-0 (INCORRECT):
'2016-03-13 03:38:01.0'    '2016-03-13 02:38:01'