我正在使用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 Studio,因为在DBeave中,它按预期运行:P如果有人需要知道如何解决此问题,我将在此留下这个问题。
我将尝试在Hana Studio中找到一种解决方法,然后回发。
HANA Studio(和所有其他JDBC应用程序)假定数据库中存储的DATE
是UTC。这些值在获取时将转换为客户端的本地时区。
在您自己的JDBC应用程序中,可以在getDate()调用上传递Calendar对象,以指定要将服务器值转换为哪个时区。
HANA Studio取决于JVM时区设置,默认情况下是从OS读取的。为了避免在HANA Studio中出现此问题,您可以在hdbstudio.ini文件中添加JVM属性-Duser.timezone=UTC
(或更改计算机上的时区)。