MarkLogic中如何将字符串转日期类型?使用xdmp.parseDateTime报错求助
解决MarkLogic中String转Date的xdmp.parseDateTime错误问题
嘿,我帮你揪出问题所在啦!你在使用xdmp.parseDateTime()的时候犯了一个参数逻辑的小错误~
问题根源
xdmp.parseDateTime()的作用是把符合指定格式的字符串解析为日期类型,它的第二个参数需要传入待解析的字符串,但你代码里却把字符串先转成了xs.date类型传进去,这就触发了参数类型不匹配的错误(XDMP-ARGTYPE)。
正确实现方式
方式1:用xdmp.parseDateTime解析字符串
直接把你的日期字符串作为第二个参数传入,格式模板匹配YYYY-MM-DD即可:
let targetDateString = "2013-04-21"; // 格式模板[Y0001]-[M01]-[D01]对应YYYY-MM-DD格式 let targetDate = xdmp.parseDateTime("[Y0001]-[M01]-[D01]", targetDateString);
方式2:更简洁的xs.date()(推荐)
因为你的日期字符串是标准的ISO 8601格式(YYYY-MM-DD),其实可以直接用xs.date()来转换,不需要调用xdmp.parseDateTime():
let targetDateString = "2013-04-21"; let targetDate = xs.date(targetDateString);
这样就能顺利把字符串"2013-04-21"转换成对应的Date类型啦!
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

