是否可以使用SPARQL从日期中提取月份元素并按其分组结果。我使用W3时间本体来定义"2009-12-31"^^xsd:date
格式的日期。
因此,如果是"2009-12-31"^^xsd:date
,我想提取12
。
这是否可能。如果是这样,怎么办呢?
答案 0 :(得分:5)
在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)
唯一的小问题是SPARQL系统不需要处理xsd:date数据类型,只需要xsd:dateTime,但是很多人会正确处理它。