You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何过滤xsd:dateTime类型的时间?SPARQL查询技术求助

解决方案:筛选早上出发航班对应的乘客

要过滤下午1点前出发的航班,你可以用SPARQL的时间处理函数提取xsd:dateTime里的时间部分,完全不用关心日期。这里有两种简单的实现方式:

方法一:提取小时数直接判断

利用HOURS()函数从日期时间中提取小时数(24小时制),判断是否小于13即可:

SELECT ?person  
WHERE {      
  ?person myns:bookTicket ?ticket.    
  ?ticket myns:hasFlight ?flight.    # 修正拼写错误:hasFligth → hasFlight
  ?flight myns:hasDepartureTime ?time.  
  FILTER (HOURS(?time) < 13)
}

方法二:提取时间部分进行比较

用xsd:time()函数把xsd:dateTime转换为纯时间类型,再和13点的时间直接对比:

SELECT ?person  
WHERE {      
  ?person myns:bookTicket ?ticket.    
  ?ticket myns:hasFlight ?flight.    
  ?flight myns:hasDepartureTime ?time.  
  FILTER (xsd:time(?time) < xsd:time("13:00:00"))
}

两种方法都能精准筛选出下午1点前出发的航班,进而找到对应的乘客。另外注意修正了原查询里的拼写错误(hasFligth改为hasFlight),避免因语法问题导致查询失败。

内容的提问来源于stack exchange,提问作者Looser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:06:22