簡體   English   中英

SPARQL 查詢:如何按時間過濾 xsd:dateTime?

[英]SPARQL Query : How to filter xsd:dateTime by time?

我真的沒有在網上找到任何東西,這就是我在這里問的原因。 我有以下查詢:

“歸還所有喜歡早上離開的人”

myns 是我在 Protedge 中的本體的前綴。 這是我到目前為止寫的:

SELECT ?person  
WHERE {     
?person myns:bookTicket     ?ticket.    
?ticket myns:hasFligth      ?fligth.    
?fligth myns:hasDepartureTime   ?time.  
FILTER ( how to return ?time that depart in the morning so < 1pm ) 
}

這里 myns:hasDepartureTime 返回一個 xsd:dateTime 類型例如“2022-05-04T22:00:00” )。 我知道如何按日期過濾,但我真的不知道如何提取時間,所以我可以按時間過濾。 我需要返回所有早上出發的航班,這樣我才能完成我的目標。 因為無論我使用哪個時間,FILTER 總是會先看當天,我不在乎航班是哪一天起飛,而只關心它的時間。

但我真的不知道如何提取時間,所以我可以按時間過濾它。

正如UninformedUser評論中提到的

在過濾器中的 xsd:dateTime 文字上使用小時和分鍾函數

例如:

prefix xsd: <http://www.w3.org/2001/XMLSchema#>

select ?dt {
 values ?dt {
    "2022-07-18T10:06:41.756+00:00"^^xsd:dateTime
    "2022-07-18T17:06:41.756+00:00"^^xsd:dateTime
    "2022-07-18T14:06:41.756+00:00"^^xsd:dateTime
    "2022-07-18T08:06:41.756+00:00"^^xsd:dateTime
  }

  filter ( hours(?dt) < 13 )
}

暫無
暫無

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

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