我从ABAP开始,我使用以下说明在系统中获取日期,但我无法获取前一天的日期,有人有什么建议吗?谢谢。
我尝试过:
{
$session.system_date as today,
$session.system_date - 1 as yesterday
}
但我不会用日期做算术运算,这标志着一个错误。
您可以将DATS_ADD_DAYS
函数用于此任务。
它不允许将会话变量直接作为参数,但我们可以使用以下技巧:
define view Z_TODAY
as select from
zsomething
{
key field1 as type1,
key field2 as type2,
...
$session.system_date as today,
DATS_ADD_DAYS( cast( $session.system_date as abap.dats ),-1,'NULL') as yesterday
}
将系统日期封装到CAST
中即可。
另一种不太直观的方法(有时可能更灵活(是将可选参数与预定义值相加:
define view Z_TODAY
with parameters
@Environment.systemField : #SYSTEM_DATE
p_datum : abap.dats
as select from zsomething
{
key field1 as type1,
key field2 as type2,
...
$session.system_date as today,
DATS_ADD_DAYS( :p_datum,-1,'NULL') as yesterday
}