Как преобразовать строку в тип даты в MarkLogic? - PullRequest
0 голосов
/ 03 мая 2018

В настоящее время у меня возникли проблемы с преобразованием типа данных String в тип Date. Я использовал JavaScript-функцию MarkLogic xdmp.parseDateTime, но всегда получаю сообщение об ошибке ниже:

Сценарий: Преобразование «2013-04-21» (строка) в 2013-04-21 (тип даты)

Код:

let targetDateString = "2013-04-21";
let targetDate = new Date();

targetDate = xdmp.parseDateTime("[Y0001]-[M01]-[D01]", 
xs.date(targetDate));

Информация об ошибке:

XDMP-ARGTYPE: xdmp.parseDateTime ("[Y0001] - [M01] - [D01]", xs.date ("2013-04-21")) - arg2 не имеет тип String

Использую ли я правильную функцию MarkLogic, предоставляя ей правильные параметры? Или есть лучший способ сделать это?

А как мне привести дату обратно к строковому типу данных?

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

xs.date("2013-04-21") - это конструктор даты xquery (перенесенный в JS), который принимает строку и возвращает дату xs:. xs.dateTime("2013-04-21T00:00:00") даст вам xs: dateTime.

xdmp.parseDateTime может преобразовать строку в xs: dateTime из большего количества форматов, второй член - строка: xdmp.parseDateTime("[Y0001]-[M01]-[D01]", targetDateString)

См. https://docs.marklogic.com/xdmp.parseDateTime

Преобразование обратно в строку просто fn.string(yourdate)

0 голосов
/ 03 мая 2018

Вы можете напрямую использовать конструктор класса date.

var d = new Date("2013-04-21");
console.log(d);

Вы даже можете использовать его с различными форматами, Ref .

...