我正在尝试使用MarkLogic获取任何选定日期的第一天和最后一天日期。
示例:
let $date := xs:date("2018-08-24")
let $firstDay := "*Should be 1st day of month - of $date*"
let $lastDay := "*Should be last day of month - of $date*"
return ("$firstDay:",$firstDay,"$lastDay:",$lastDay)
预期的输出日期:
$firstDay: 2018-08-01
$lastDay: 2018-08-31
我可以使用 functx:month-first-of-month($ date)和 functx:每月的最后一天($ date),但我想知道 MarkLogic
是否提供了任何API或替代选项答案 0 :(得分:2)
您可以使用标准XQuery duration arithmetic直接计算该值:
let $date := xs:date("2018-08-24")
let $one-day := xs:dayTimeDuration('P1D')
let $one-month := xs:yearMonthDuration('P1M')
(: subtract days to get to the 1st of the month :)
let $firstDay := $date - (fn:day-from-date($date) - 1) * $one-day
(: get the 1st of the next month and then subtract one day :)
let $lastDay := $firstDay + $one-month - $one-day
return ("$firstDay:",$firstDay,"$lastDay:",$lastDay)