旧版 MarkLogic 版本(XQuery 1.0-ml 之前)似乎支持计算两个日期之间的年月周期的函数 ( https://docs.marklogic.com/fn:subtract-dateTimes-yielding-yearMonthDuration )。文档页面现在建议“-”运算符应与高于 0.9-ml 的版本一起使用。但是,该运算符返回以天和小时为单位的时间段,而不是以年、月和日为单位的时间段,并且由于闰年的原因,无法正确地将天和小时时间段转换为年和月。是否有另一个函数可以为 XQuery 1.0-ml 执行此操作?
最佳答案
你自己构造一个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")
呵呵!
关于marklogic - 如何计算两个 xs :dates? 之间的年份和月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49024546/