SAP HANA-带日期的错误

问题描述 投票:0回答:2

我正在使用SAP Hana,我需要对日期做一些事情(主要是增加几天)

我在每年的特定日期(5月的第二个星期六)工作时遇到问题。我的猜测是,这与节省时间有关。

我简化了查询以显示问题。

DO
BEGIN
    DECLARE FECHA VARCHAR(20) = '2020-05-10';

    SELECT :FECHA AS D1
         , TO_DATE(:FECHA) AS D2
         , TO_VARCHAR(TO_DATE(:FECHA)) AS D3
      FROM DUMMY;
END;

作为结果,我得到的是:

|------------|-------------|------------------------|------------|
|    D1      |      D2     |           D3           |     D4     |
|------------|-------------|------------------------|------------|
| 2020-05-10 | 09-may-2020 | 09-may-2020 23:00:00.0 | 2020-05-10 |
|------------|-------------|------------------------|------------|

这会增加我遇到的日子时会引起各种各样的问题。但是,仅此简单示例就足够了。

感谢您的建议。

hana
2个回答
0
投票

我认为问题出在Hana Studio,因为在DBeave中,它按预期运行:P如果有人需要知道如何解决此问题,我将在此留下这个问题。

我将尝试在Hana Studio中找到一种解决方法,然后回发。


0
投票

HANA Studio(和所有其他JDBC应用程序)假定数据库中存储的DATE是UTC。这些值在获取时将转换为客户端的本地时区。

在您自己的JDBC应用程序中,可以在getDate()调用上传递Calendar对象,以指定要将服务器值转换为哪个时区。

HANA Studio取决于JVM时区设置,默认情况下是从OS读取的。为了避免在HANA Studio中出现此问题,您可以在hdbstudio.ini文件中添加JVM属性-Duser.timezone=UTC(或更改计算机上的时区)。

© www.soinside.com 2019 - 2024. All rights reserved.