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.
>>>
>>>
>>
>

Reply via email to