如何通过在BPM 11g上使用xpath获得两个日期之间的差异作为持续时间

如何通过在BPM 11g上使用xpath获得两个日期之间的差异作为持续时间,xpath,oracle11g,business-process-management,Xpath,Oracle11g,Business Process Management,需要获取两个dateTime有效负载对象之间的差异,作为在HT过期值上使用的持续时间格式。(即作为PT2055M或P1DT10H15M返回) 实际检查该链接上的函数: 我试图通过创建持续时间来解决这个问题,比如 concat(“p”,xp20:year from dateTime(string)(bpmn:getDataObject('myPayloadDate'))-xp20:year from dateTime(xp20:current-dateTime()),“Y”,xp20:month

需要获取两个dateTime有效负载对象之间的差异,作为在HT过期值上使用的持续时间格式。(即作为PT2055M或P1DT10H15M返回) 实际检查该链接上的函数: 我试图通过创建持续时间来解决这个问题,比如

concat(“p”,xp20:year from dateTime(string)(bpmn:getDataObject('myPayloadDate'))-xp20:year from dateTime(xp20:current-dateTime()),“Y”,xp20:month from dateTime(string)(bpmn:getDataObject('myPayloadDate'))-xp20:month from dateTime(string)(xp20:current-dateTime()),“M”,xp20:day from(string)(bpmn:getDataObject('mypayloaddatedatedatedate'))-xp20:DayfromDateTime(xp20:current-dateTime()),“DT”,xp20:HourfromDateTime(string(bpmn:getDataObject('myPayloadDate')))-xp20:HourfromDateTime(xp20:current-dateTime()),“H”,xp20:MinutefromDateTime(string(bpmn:getDataObject('myPayloadDate')),“M”)-xp20:MinutefromDateTime(xp20:current-dateTime()),“M”)

但意识到这种方法只关注单独的价值观,而不是预期的整体价值观。 我找不到要解决的函数的正确组合。
您能提供plz指南吗?

假设您有一个XPath 2.0处理器,只需使用减法运算符即可。比如说

current-date() - xs:date('2001-03-04')
给予


(您说的是“日期”,但您的示例看起来更像dateTime。减法运算符可以使用其中任何一个。)

请在问题中包含所有相关信息,而不是外部链接。还有,到目前为止你试过什么?请改进问题以获得更好的答案。谢谢您,先生。假设BPM11g上的XPath版本为2.0。因为检查了它,如果运行current-date(),则可以看到它运行时没有错误。但当我将这个表达式指定给共享信息xp20:addDaytimeDuration到dateTime(xp20:current-dateTime(),“PT1D”)-xp20:current-dateTime()到inteval或string元素时。运行后字段获取NaN值。可能有什么问题Oracle规范说“除了标准的XPath 1.0函数外,XSLT映射器还提供了许多预构建的扩展函数,可以支持用户定义的函数和命名模板。扩展函数的前缀是oraext或orcl,并模拟XPath 2.0函数。”。所以看起来它不是真正的XPath2.0,这意味着您必须阅读手册。
P4744D