如何在SPARQL中转换日期格式?

3
我是SPARQL的新手,已经在网上搜索了相当长时间。我的端点是http://dbpedia.org/sparql,我正在使用http://yasgui.laurensrietveld.nl/执行查询。
我可以检索到看起来像1994-04-11 00:00:00的日期。现在为了显示目的,我需要将日期显示为MM/DD/yyyy格式,即4/11/1994。是否有任何函数可以帮助我?
我不想使用STR,CONCAT,YEAR,MONTH,DAY函数,因为我希望查询结果按最早的日期排序。
编辑:我的查询有group by ?name order by ?date。我想要获取最早的日期。例如对于“abc”,我有三个日期,分别是10/13/2001; 10/15/2007和10/22/2007。我想要获取最早的日期10/13/2001。

1
在按日期排序的同时,您可以使用函数STRCONCATMONTH等。 - undefined
1
对于你最新编辑后的问题,我不太清楚你具体在问什么。你最初的问题是关于将日期转换为不同的格式,但现在似乎你在询问如何进行分组和排序。也许你应该展示整个查询,并更明确地说明你想要实现的目标。 - undefined
1个回答

8
假设您选择的DBPedia日期值是有效的 xsd:dateTime 字符串(您在问题中提供的字符串无效),您可以按照以下方式轻松完成:
   SELECT ?x (CONCAT(STR(MONTH(?date)), 
                     "/", 
                     STR(DAY(?date)), 
                     "/", 
                    STR(YEAR(?date))) as ?displayDate)
   WHERE {
              ?x :hasDate ?date.
   }
   ORDER BY ?date

谢谢Jeen,我刚刚更新了我的问题。我错过了一组部分中的最早日期。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接