我们使用dotnetrdf
创建了一个SPARQL端点,并且在与SPARQL相关时我是初学者。日期字段已存储为MM/DD/YYYY
格式的字符串。现在,需要进行日期比较(> <
),在SPARQL查询中必须将字符串转换为xsd:datetime
或xsd:date
。有没有办法做到这一点?还有其他选择吗?
dotnetrdf
中是否有与日期相关的SPARQL查询可用的好示例?
感谢。
答案 0 :(得分:4)
我认为答案是你可以,但可能不想!
您应该可以使用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
绑定到MM/DD/YYYY
日期值的位置。假设没有拼写错误,该函数的返回值应该是合法的xsd:dateTime
。
如果是我,我会提取所有MM/DD/YYYY
数据,在外部处理,并添加其他数据xsd:dates
或xsd:dateTimes
。