我们已经使用dotnetrdf
创建了一个SPARQL端点,当与SPARQL相关时,我是一个初学者。日期字段以MM/DD/YYYY
格式存储为字符串。现在,需要进行日期比较(> <
),为此必须在SPARQL查询中将字符串转换为xsd:datetime
或xsd:date
。有没有办法做到这一点?还有其他选择吗?dotnetrdf
中是否有任何适用于与日期相关的SPARQL查询的良好示例?
谢谢。
最佳答案
我认为答案是可以的,但可能不想!
您应该能够使用SPARQL 1.1 SUBSTR
function以及concat
和strdt
做到这一点。
遵循以下原则
strdt(concat(substr(?x, 7, 4), '-', substr(?x, 1, 2), '-', substr(?x, 4, 2), 'T00:00:00'), xsd:dateTime)
?x
绑定(bind)到MM/DD/YYYY
日期值的位置。该函数的返回值应该是合法的xsd:dateTime
,假定没有输入错误。如果是我,我将提取所有
MM/DD/YYYY
数据,在外部进行处理,然后将其他数据添加为xsd:dates
或xsd:dateTimes
。关于date - SPARQL日期转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11135233/