Получить даты первого дня и последнего дня месяца выбранной даты в Marklogic - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь получить даты первого и последнего дня любой выбранной даты, используя 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: первый день месяца ($ date) и functx: последний день месяца ($ date) , но я хотел знать, есть ли какой-либо API или альтернативный вариант, предоставляемый MarkLogic

1 Ответ

0 голосов
/ 03 сентября 2018

Вы можете вычислить это напрямую, используя стандартную арифметику XQuery длительности :

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)
...