以下代码应该从给定日期减去10天,将结果存储在字符串变量中并写入。
DATA str TYPE string.
DATA date TYPE d.
date = '20130418'. " 2013-04-18
str = date - 10.
WRITE str.
我希望输出为2013-04-08或至少是未格式化的20130408.但实际输出是一个非常神秘的数字,对我来说根本没有意义:
734967
有人能解释一下这个号码的来源吗?
我已经找到了一个解决方法(只是将结果放在另一个类型为d的变量中,然后将此变量赋值给字符串),但我仍然对这个奇怪结果的解释感兴趣。
SAP_BASIS版本是702。
答案 0 :(得分:3)
查看conversion rules:对于减法,日期将转换为内部自01.01.0001以来的天数(源类型日期,目标类型I),然后进行算术运算。如果结果是日期字段,则应用转换为YYYYMMDD形式的转换(源类型I / Packed,目标类型D)。但是,I / Packed到string的转换定义不同 - 因此该字符串包含结果日期和01.01.0001之间的天数。