2

较旧的 MarkLogic 版本(XQuery 1.0-ml 之前)似乎支持计算两个日期之间的年月周期的函数(https://docs.marklogic.com/fn:subtract-dateTimes-yielding-yearMonthDuration)。文档页面现在建议将“-”运算符用于 0.9-ml 之后的版本。该运算符返回一个以天和小时为单位的时间段,但不是以年、月和日为单位,并且由于闰年,不可能正确地从天和小时周期转换为年和月。是否有另一个函数可以为 XQuery 1.0-ml 执行此操作?

4

1 回答 1

2

自己构建 yearMonthDuration 相当容易。我已经在ml-date-ranges中这样做了。它归结为:

let $year-diff := year-from-date($max) - year-from-date($min)
let $month-diff := month-from-date($max) - month-from-date($min)
return
  xs:yearMonthDuration("P" || (($year-diff * 12) + $month-diff) || "M")

于 2018-02-28T10:07:46.937 回答