计算 XQuery 中 dateTime 值之间的分钟差

calculate difference in minutes between dateTime values in XQuery

我想以分钟为单位计算日期时间之间的差异

xdmp:parse-dateTime("[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]","2017-01-17T08:00:00")
xdmp:parse-dateTime("[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]","2017-01-17T22:45:00")

我尝试使用

xquery version "0.9-ml"
fn:subtract-dateTimes-yielding-dayTimeDuration(
  xdmp:parse-dateTime("[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]","2017-01-17T08:00:00"),
  xdmp:parse-dateTime("[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]","2017-01-17T22:45:00")
)

输出为

-PT14H45M

我要分钟输出

减去日期,除以 dayTimeDuration 1 分钟:

let $date1 := xs:dateTime("2017-01-17T08:00:00")
let $date2 := xs:dateTime("2017-01-17T22:45:00")
return fn:abs(($date1 - $date2) div xs:dayTimeDuration("PT1M"))

HTH!

您还可以使用 functx 库 functx:total-minutes-from-duration():

xquery version "1.0-ml";
import module namespace functx = "http://www.functx.com" at
 "/MarkLogic/functx/functx-1.0-nodoc-2007-01.xqy";

functx:total-minutes-from-duration(
  xdmp:parse-dateTime("[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]","2017-01-17T08:00:00")
  - xdmp:parse-dateTime("[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]","2017-01-17T22:45:00")
)