Got it! Done: * BIND(str(floor(fn:days-from-duration(?date_of_death - ?date_of_birth) / 365)) as ?age_at_death)*
2013/12/6 Ewa Szwed <[email protected]> > for: > > BIND(?date_of_death - ?date_of_birth as ?duration) > > ?duration is > > "P25045DT0H0M0.000S"^^<http://www.w3.org/2001/XMLSchema#duration> > > Is it possible to extract days/years value from it in Sparql? > > > > 2013/12/6 Andy Seaborne <[email protected]> > >> On 06/12/13 12:16, Ewa Szwed wrote: >> >>> Hello, >>> >>> I would like to ask if it is doable to do something like this in Sparql >>> on >>> Jena TDB. >>> >>> I would like to calculate the difference between 2 dates. >>> >>> What I have at the moment working is: >>> >>> BIND(fn:year-from-dateTime(?date_of_birth) AS ?year_of_birth) >>> >> >> shorter: >> YEAR(?date_of_birth) >> >> >> BIND(fn:year-from-dateTime(?date_of_death) AS ?year_of_death) >>> BIND(?year_of_death - ?year_of_birth AS ?age) >>> BIND(fn:concat(?age, " (", ?year_of_birth, "-", ?year_of_death, >>> ")" ) AS ?age_at_death) >>> >> >> ARQ supports xsd:duration. >> >> ?date_of_death - ?date_of_birth -> xsd:duration >> >> assuming ?date_of_death and ?date_of_birth are well-formed xsd:dateTimes. >> >> >> >>> Unfortunately it is not perfect calculation because it just subtracts two >>> years from ech other and will now answer precisely how old was someone >>> when >>> he died. >>> >>> I would need to extract years from xsd:duration >>> >>> Is it possible to do it? >>> >>> I would appreciate any answer. >>> >>> >> >
