在SPARQL中按月分组数据?

时间:2012-03-08 15:56:35

标签: date rdf sparql

是否可以使用SPARQL从日期中提取月份元素并按其分组结果。我使用W3时间本体来定义"2009-12-31"^^xsd:date格式的日期。

因此,如果是"2009-12-31"^^xsd:date,我想提取12

这是否可能。如果是这样,怎么办呢?

1 个答案:

答案 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,但是很多人会正确处理它。