abas-ERP(FO-Language):2个abas日期之间的确切时间差

时间:2015-11-03 13:49:40

标签: erp abas

是否有任何FO原生的可能性来获得两个abas日期对象之间的确切差异?

我有一个基于AJO的解决方案,比较两个日历对象,但它对我的用例来说太慢了(它被多次调用),我希望有一个原生解决方案。

abas日期(GD-Fields)可以表示的最高准确度是多少? Just Seconds还是有办法获得一个UNIX时间戳或类似的东西以获得更高的精度。

1 个答案:

答案 0 :(得分:1)

是的,您可以使用GP4类型。

.type GD19 xdbegin xdend
.type GP4  xgdiff
.formula U|xdbegin = "1.1.2015 00:00:00"
.formula U|xdend   = "1.1.2016 00:00:00"
.formula U|xgdiff  = U|xdend-U|xdbegin
'U|xgdiff'

输出为365D00h00m00s

现在你可以转换它,例如到秒:

.type text xtcmd
.type int  xisec
.formula U|xtcmd = "formula U|xisec = " + F|regreplace(F|regreplace(F|regreplace(F|regreplace('U|xgdiff', "D", "*24*60*60+"), "h", "*60*60+"), "m", "*60+"), "s", "")
.'U|xtcmd'

据我所知"秒"是您在FO中可以使用的最高精度。 如果您需要更多,则必须使用(如您所述)UNIX时间戳