gpt4 book ai didi

datetime - 按 SPARQL 中的日期范围过滤

转载 作者:行者123 更新时间:2023-12-02 15:18:54 24 4
gpt4 key购买 nike

我正在使用 Jena 的 SPARQL 引擎,并尝试编写一个查询来过滤日期范围,因为我需要在固定日期之后查找属性的值。

我的日期属性采用以下格式:

 Fri May 23 10:20:13 IST 2014 

如何编写 SPARQL 查询来获取日期大于此日期的其他属性?

最佳答案

使用该格式的数据,如果不添加自定义extension function,则无法对其范围进行过滤。到 ARQ(适用于高级用户),因为您需要解析和解释日期时间字符串。

您应该做的是将数据转换为所有 SPARQL 实现都需要支持的标准日期时间格式 xsd:dateTime。请参阅XML Schema Part 2: Datatypes有关此格式详细信息的规范。

您的具体示例日期将翻译如下:

2014-05-23T10:20:13+05:30

当您在数据和查询中使用它时,您必须确保将其声明为 xsd:dateTime 类型的类型文字。例如在可读的 Turtle 中RDF 语法:

@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix : <http://example.org> .

:subject :date "2014-05-23T10:20:13+05:30"^^xsd:dateTime .

然后,您可以编写一个按日期范围进行过滤的 SPARQL 查询,如下所示:

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX : <http://example.org>

SELECT *
WHERE
{
?s :date ?date .
FILTER (?date > "2014-05-23T10:20:13+05:30"^^xsd:dateTime)
}

这将查找 ?date 在给定日期之后的所有记录

关于datetime - 按 SPARQL 中的日期范围过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24051435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com