That query will be problematic if you have multiple Date elements in your documents. You should transform your data to store a proper xs:date.
Justin -- Justin Makeig Director, Product Management MarkLogic > On Jan 21, 2016, at 3:06 AM, [email protected] wrote: > > Hi Pragya, > > I don’t think ,you can use the below format for date range comparison . > Better you have same date details in attribute too. So , simply you can setup > element attribute range index with integer option then try the following code > . It will work. > > > let $fromDate := ("2011-03-04") > let $toDate := ("2011-06-08") > let $docs := cts:search(fn:doc()/DocumentList/Document, > cts:and-query(( > > cts:element-attribute-range-query(xs:QName("Date"),xs:QName("Year"), > ">=",xs:int(substring($fromDate,1,4))), > > cts:element-attribute-range-query(xs:QName("Date"),xs:QName("Year"), > "<=",xs:int(substring($toDate,1,4))), > > cts:element-attribute-range-query(xs:QName("Date"),xs:QName("Month"), > ">=",xs:int(substring($fromDate,6,2))), > > cts:element-attribute-range-query(xs:QName("Date"),xs:QName("Month"), > "<=",xs:int(substring($toDate,6,2))), > > cts:element-attribute-range-query(xs:QName("Date"),xs:QName("Day"), > ">=",xs:int(substring($fromDate,9,2))), > > cts:element-attribute-range-query(xs:QName("Date"),xs:QName("Day"), > "<=",xs:int(substring($toDate,9,2))) > )) > ) > return $docs > > > By > Raja>>> > > From: [email protected] > <mailto:[email protected]> > [mailto:[email protected] > <mailto:[email protected]>] On Behalf Of Kapoor, Pragya > Sent: Thursday, January 21, 2016 2:52 PM > To: MarkLogic Developer Discussion > Subject: [MarkLogic Dev General] cts:element-range-query > > > Hi, > > I need to query an element(Date) using cts:element-range-query, but the value > this element(Date) is in different format. > > <Date Year="2011" Month="03" Day="04"> > 2011 Mar 04 > </Date> > > > query : > > let $fromDate := xs:date("2011-04-08") > let $toDate := xs:date("2011-06-08") > let $docs := cts:search(fn:doc("/misc/DocList.xml")/DocumentList/Document, > cts:and-query(( > cts:element-range-query(xs:QName("Date"), > "<=",$fromDate), > cts:element-range-query(xs:QName("Date"), > ">=",$toDate) > )) > ) > return $docs > > How can run this query or I need to use some other api? > > Thanks > Pragya > > > "This e-mail and any attachments transmitted with it are for the sole use of > the intended recipient(s) and may contain confidential , proprietary or > privileged information. If you are not the intended recipient, please contact > the sender by reply e-mail and destroy all copies of the original message. > Any unauthorized review, use, disclosure, dissemination, forwarding, printing > or copying of this e-mail or any action taken in reliance on this e-mail is > strictly prohibited and may be unlawful." > This e-mail and any files transmitted with it are for the sole use of the > intended recipient(s) and may contain confidential and privileged > information. If you are not the intended recipient(s), please reply to the > sender and destroy all copies of the original message. Any unauthorized > review, use, disclosure, dissemination, forwarding, printing or copying of > this email, and/or any action taken in reliance on the contents of this > e-mail is strictly prohibited and may be unlawful. Where permitted by > applicable law, this e-mail and other e-mail communications sent to and from > Cognizant e-mail addresses may be > monitored._______________________________________________ > General mailing list > [email protected] <mailto:[email protected]> > Manage your subscription at: > http://developer.marklogic.com/mailman/listinfo/general > <http://developer.marklogic.com/mailman/listinfo/general>
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ General mailing list [email protected] Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
