java打印日期时间,但不在Sparql输出中指定数据类型
我在Jena中使用以下sparql查询来打印一些信息:
String qr = "PREFIX : <http://www.example.com/tempsensor#>\n" +
"PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> \n"+
"SELECT \n"+
"?Place ?Temperature ?Date \n"+
"WHERE\n"+
"{ ?ind :locatedIn ?Place .\n " +
"?ind :measures ?Temperature .\n " +
"?ind :onDate ?Date .\n " +
"FILTER(regex(str(?Place),'Delhi', 'i'))\n"+
"FILTER ( datatype(?Date) = xsd:dateTime)\n"+
"}";
获得的产出是:
--------------------------------------------------------------
| Place | Temperature | Date |
==============================================================
| :Delhi | 16 | "2014-10-02T03:20:10"^^xsd:dateTime |
但是,我不希望数据类型附加在日期列中。我需要像这样的输出
--------------------------------------------------------------
| Place | Temperature | Date |
==============================================================
| :Delhi | 16 | 2014-10-02T03:20:10 |
我应该如何在查询中指定它
# 1 楼答案
您可以使用项目表达式仅获取文本的字符串形式:
这里,我们使用内置的STR()函数将
?Date
的值转换为不带数据类型的字符串形式SPARQL定义了广泛的内置函数,值得您花时间阅读-http://www.w3.org/TR/sparql11-query/#expressions