SPARQL 的 BIND 年份函数是否适用于 xsd:datetimestamp?

Does SPARQL's BIND year function work for xsd:datetimestamp?

所以我可以使用这个查询:

SELECT ?year
WHERE {    
?timeInt :hasStartTime ?StartT . 
    BIND(year(?StartT) AS ?year) 
}

得到 2022 的输出。这是我的 RDF 数据(海龟语言):

:Interval1 :hasStartTime "2022-03-11"^^xsd:date .

但是当我使用这个时:

:Interval1 :hasStopTime "2022-03-11T21:01:23Z"^^xsd:dateTimeStamp .

我的查询无法输出任何内容。那么这是否意味着 BIND 为 xsd:date 工作的方式与 xsd:datetimestamp 的工作方式不同,或者我错过了什么?是否有其他选项可以使用 BIND 到 select 在 xsd:date 时间戳中的更具体时间而不仅仅是年份?谢谢。

这将取决于引擎是否支持该数据类型。有些会,有些不会。它不是 SPARQL 规范所要求的。 xsd:dateTime 为必填项。

有需要的可以投。最便携的方式是写

strdt(str("2022-03-11T21:01:23Z"^^xsd:dateTimeStamp), xsd:dateTime)

它只依赖于基本规范。