我有以下过滤器,可将我的数据过滤到上周的项目。
#just consider the likes in the last one week.
filter (?ratingDate >= "2017-03-01T00:00:00"^^xsd:dateTime )
如您所见,我在手中设置了上周的日期时间(硬编码),有没有办法自动设置该日期?
我正在寻找类似now-7day的内容
最佳答案
(合并评论)
现在 - 7 天需要做很多事情:
SPARQL中有一个用于当前时间点的函数:now()
“7 天”是 xsd:duration,“P7D”^^xsd:duration
“-”是涉及 xsd:dateTime 和 xsd:duration 的算术 - 操作是 op:subtract-yearMonthDuration-from-dateTime (来自“XPath 和 XQuery 函数和运算符”) - 并且还重载“-”操作来分派(dispatch)到该函数。
您需要检查您所使用的 SPARQL 引擎是否支持 xsd:dateTime 扩展和 xsd:duration 算术。
计算出“现在 - 7 天”的 xsd:dateTime 后,标准 SPARQL 的一部分的 ">= 比较:
FILTER ( ?ratingDate >= (now()-"P7D"^^xsd:duration) )
关于sparql如何根据日期范围进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35893121/