Xquery 在cts中格式化日期时间:元素值

Xquery 在cts中格式化日期时间:元素值,xquery,marklogic,cts,marklogic-8,Xquery,Marklogic,Cts,Marklogic 8,我想在cts:element值本身中设置dateTime的格式。有人能帮我解决这个问题吗 我有一个日期时间格式字符串- let $date-format := "[Y0001]-[M01]-[D01]T[h01]:[m01]:[s01].[f1]" 我想在这样的查询中使用它- cts:element-values( xs:QName($field), (), ($direction), cts:and-query((cts:collection-query("urn:idd

我想在cts:element值本身中设置dateTime的格式。有人能帮我解决这个问题吗

我有一个日期时间格式字符串-

let $date-format := "[Y0001]-[M01]-[D01]T[h01]:[m01]:[s01].[f1]"
我想在这样的查询中使用它-

cts:element-values(
  xs:QName($field),
  (), 
  ($direction), 
  cts:and-query((cts:collection-query("urn:iddn:collections:searchable"), cts:query($cts-query)))
  )

提供的$field类型为dateTime。

您可以通过编写用户定义的函数来完成此操作。UDF以map/reduce的形式运行,因此即使使用大型数据集,它们的速度也非常快。我写了一篇基于日期时间数据的文章。该示例基于MarkLogic 6,但仍应适用于MarkLogic 8


好的是UDF非常快。棘手的部分是你必须用C++编写它。MarkLogic文档中的完整文档

您的意思是想漂亮地打印cts:element值的输出吗?或者你的意思是为了索引的利益,你想在读取时调整内容吗?数据是以日期-时间的形式存在的,我只想得到剩余的月份和年份值,我需要0。示例-如果我的dateTime=2015-10-12T22:32:11,我希望获得2015-10或2015-10-01T00:00:00cts:元素值(…)!fn:format dateTime(,“[Y0001]-[M01]”)格式@DALDEI你应该把它写下来作为完整的答案;所以它更明显(并且你得到了代表)。可能值得对语法使用完整的
,因为ML仍然默认为xquery-1。您可能还希望获得不同的值,这也不可能直接从词典中获得。我也有兴趣了解更多关于这是为了什么。也许是某个方面?如果是这样,您也许可以利用搜索约束桶。