【发布时间】:2018-09-07 12:02:14
【问题描述】:
我需要一些帮助来使用 Ontotext GraphDB 中的 SPARQL 计算两个日期之间的差异。我知道 SPARQL 协议不支持日期的算术运算,但是一些 SPARQL 引擎支持它。
作为 Fuseki 中的一个例子,我可以做到。
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?duration
WHERE {
BIND (("2011-02-04T14:45:13.815-05:00"^^xsd:dateTime - "2011-02-
02T14:45:13.815-05:00"^^xsd:dateTime) AS ?duration)
}
结果是持续时间:"P2DT0H0M0.000S"^^xsd:duration。然后我可以得到 2 天的 diff,或者 Virtuoso 提供了一个内置函数bif:datediff。
我的问题是,GraphDB 上是否有类似的东西可以在没有大的变通方法的情况下解决这个简单的问题。
提前致谢。
【问题讨论】:
-
对于同一个月内的日期时间,您可以extract天、小时、分钟等并手动执行计算。
-
您好 Stanislav Kralin,感谢您的帮助。我会将您的第一个回复标记为解决方案。但是,我仍然有同样的问题,因为是一个封闭的网络,无法从运行服务器的 VM 访问 Internet。我不可能使用外部服务。不幸的是,日期不在同一个月内。所以,现在,我将使用 sparql 请求数据,并在后端函数上完成计算和响应。谢谢。
-
那么接受答案怎么样 :)?