Date 查询控制台与.xqy文件
我正在查询控制台中运行以下代码:Date 查询控制台与.xqy文件,date,marklogic,Date,Marklogic,我正在查询控制台中运行以下代码: let $age := xs:integer(fn:days-from-duration(fn:current-date() - xs:date(/wl:leader/wl:dob/text())) div 365.25) return $age 以及.xqy文件中的以下内容: for $leader in /wl:leader let $age := xs:integer(fn:days-from-duration(fn:current-date(
let $age := xs:integer(fn:days-from-duration(fn:current-date() - xs:date(/wl:leader/wl:dob/text())) div 365.25)
return $age
以及.xqy文件中的以下内容:
for $leader in /wl:leader
let $age := xs:integer(fn:days-from-duration(fn:current-date() - xs:date($leader/wl:dob/text())) div 365.25)
return $age
现在,两者都是相似的,但是当在查询控制台上运行时,我得到一个错误:arg1不是xs:duration类型?
我知道错误是由“fn:current date”中的持续时间部分引起的,但为什么我不面对.xqy文件的相同问题?正如亨特先生所指出的,代码中的差异解释了错误 第二个示例一次将一个引线传递到表达式中 第一个示例将所有的leader传递到一个表达式中,该表达式期望一个leader
希望这能有所帮助,您运行的代码不同。这两个代码块完全不同,第二个代码块显然只是一个子集。请确保两者的代码100%相同,并在此处提交。例如,原因可能是$leader为空。我在问题中做了一些编辑。第二个代码段工作正常,因此$leaders不是问题。谢谢:我知道错误了。感谢您的输入可能值得注意的是,在MarkLogic中,在XQuery中使用bare/实际上与编写collection/相同。换句话说,如果您编写/wl:leader,那么将选择文档数据库中所有的wl:leader根元素..哦,对了,在第一个代码中,我一次传递一个完整的dob序列。谢谢