是否可以使用SPARQL从日期中提取月份元素并按其分组结果.我正在使用W3时间本体来定义格式的日期"2009-12-31"^^xsd:date.
所以如果"2009-12-31"^^xsd:date我想提取12.
这甚至是可能的吗?如果是这样,怎么办呢?
在SPARQL 1.1中有一个month()函数(http://www.w3.org/TR/sparql11-query/#func-month),它从ISO日期中提取月份.
您可以使用GROUP BY关键字按月分组,如下所示:
SELECT ?mon SUM(?val)
WHERE {
?x :date ?date ;
:value ?val .
}
GROUP BY (month(?date) AS ?mon)
Run Code Online (Sandbox Code Playgroud)
唯一的小问题是SPARQL系统不需要处理xsd:date数据类型,只需要xsd:dateTime,但是许多系统会正确处理它.