簡體   English   中英

XQuery-動態日期過濾

[英]xquery- filtering with dynamic date

我有以下代碼:

<Table><ColumnHeaders>
<ColumnHeader  name='Title' type='xs:string' />
<ColumnHeader  name='EventDate' type='xs:date' />
<ColumnHeader  name='today' type='xs:date' />
<ColumnHeader  name='day-week' type='xs:integer' />
<ColumnHeader  name='dur-end' type='xs:integer' />
<ColumnHeader  name='start-date' type='xs:date' />
<ColumnHeader  name='end-date' type='xs:date' />
</ColumnHeaders>
<Data>{let $today := fn:current-date()
let $day-week := functx:day-of-week($today)
let $dur-end := 6-$day-week
let $start-date := xs:date($today)-(xs:dayTimeDuration('P1D')*$day-week)
let $end-date := xs:date($today)+(xs:dayTimeDuration('P1D')*$dur-end)
for $ancestor0 in $queryresponse//*:row
where ($ancestor0/@ows_EventDate)>=$start-date
return<Row>
<Title>{fn:data($ancestor0/@ows_Title)}</Title>
<EventDate>{fn:data($ancestor0/@ows_EventDate)}</EventDate>
<today>{fn:data($today)}</today>
<day-week>{fn:data($day-week)}</day-week>
<dur-end>{fn:data($dur-end)}</dur-end>
<start-date>{fn:data($start-date)}</start-date>
<end-date>{fn:data($end-date)}</end-date>
</Row>}
</Data></Table>

在“ for語句”中添加where子句后,xquery失敗,並顯示以下錯誤:

ZorbaDynamicException失敗。 Zorba引擎遇到動態錯誤。 錯誤類型:XQuery Engine錯誤。 傳遞的項目(類型為UNTYPED_ATOMIC)不能轉換為傳遞的目標類型(xs:date)。

有人可以幫我解決這個問題嗎?

由$ ancestor0 / @ ows_EventDate生成的值不可轉換為日期。 您可以使用Zorba的datetime模塊( http://www.zorba.io/documentation/2.9/modules/www.zorba-xquery.com_modules_datetime.html )中包含的parse-date函數將字符串轉換為日期。

例如,

d:parse-date($ancestor0/@/@ows_EventDate/text(), "%D")

如果您的日期格式為MM / DD / YY。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM