"夏季"时间(DST)出现问题

2020-09-24 14:40发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


当我们使用ngdbc.jar(在Eclipse或自己的应用程序中)使用HXE时,日期时间字段存在问题。

问题以小时为单位,夏季时间开始/结束。

例如,此选择显示的数据与输入的数据不同:

选择to_seconddate('2017-03-26 01:00:00'),to_seconddate('2017-03-26 02:00:00'),to_seconddate('2017-10-29 01:00:00' )来自假人;

不良结果:26.03.2017 00:00:00,26.03.2017 01:00:00,29.10.2017 02:00:00

我们不知道如何关闭这种行为。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


当我们使用ngdbc.jar(在Eclipse或自己的应用程序中)使用HXE时,日期时间字段存在问题。

问题以小时为单位,夏季时间开始/结束。

例如,此选择显示的数据与输入的数据不同:

选择to_seconddate('2017-03-26 01:00:00'),to_seconddate('2017-03-26 02:00:00'),to_seconddate('2017-10-29 01:00:00' )来自假人;

不良结果:26.03.2017 00:00:00,26.03.2017 01:00:00,29.10.2017 02:00:00

我们不知道如何关闭这种行为。

付费偷看设置
发送
2条回答
微wx笑
1楼-- · 2020-09-24 15:16

此行为是正确的,因为-在您当地时间启用了DST-2017-03-26 02:00:00根本不是有效的日期时间。

根据DST的定义,01:59:59.9是03:00:00之前的最后一个"时间戳"。 检查例如 此处了解详情。

现在您可能会争辩说,这仅适用于属于遵循DST的时区的时间戳,并且您是正确的。 在这种情况下,HANA如何"知道"哪个时区?

该信息来自两个主要来源:

-SAP HANA系统的主机设置(即Linux级别上的设置)

-用户参数"时区"(似乎仅用于前端)。

因此,无论您在SQL控制台中键入什么内容,当前假定的时区都将是服务器设置。

运行

选择*
 来自M_HOST_INFORMATION
 像'time%'这样的键; 

并查看系统中出现了什么。

如果按照建议进行设置,您应该会看到类似以下内容:

主机键值
 hxehosttimezone_offset 0
 hxehosttimezone_name UTC 

通过此设置,您的"不良结果"示例将变为"良好结果":

 TO_SECONDDATE('2017-03-26 01:00:00')TO_SECONDDATE('2017-03-26 02:00:00')TO_SECONDDATE('2017-10-29 01:00:00')
 2017-03-26 01:00:00.0 2017-03-26 02:00:00.0 2017-10-29 01:00:00.0 
大道至简
2楼-- · 2020-09-24 15:21

现在在设置java参数后我们总是可以正确得到结果 -Duser.timezone = GMT。

注意:它完全独立于服务器的时区。

非常感谢

Jan

一周热门 更多>