我有一个 SPARQL 查询,它选择出生年份为 1990 的人。我如何从 xsd:date 格式中仅获取年份?我可以看到如何使用year()从xsd:dateTime获取年份,但它在xsd:date上不起作用。
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT ?birthYear
WHERE
{dbr:Ilse_DeLange dbo:birthDate ?birth
#how to get year only as a integer?}
Run Code Online (Sandbox Code Playgroud)
根据规范,仅year()适用于xsd:dateTime文字。
根据三重存储,您可能会尝试转换为xsd:dateTime第一个:
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT DISTINCT (year(xsd:dateTime(?birthDate)) as ?birthYear) WHERE {
dbr:Ilse_DeLange dbo:birthDate ?birthDate
}
Run Code Online (Sandbox Code Playgroud)