Hi Kendall,
just pay attention to the fact that one micro is 10^-6 of a unit. Thus 0.000001 of a second is one microsecond.
Regards,
Marco.

On 30/08/2017 03:52, Kendall Shaw wrote:
I assume these are durations, but I’m not sure if the clock start date is 
relevant. If you can assume it’s not going to span days, my first thought was 
something like:

string(xs:time("00:00:00.000") + xs:dayTimeDuration("PT0.0001S"))

which produces:

00:00:00.0001

The duration is being expressed as an arbitrary number of seconds. “PT0.0001S” 
is 1 microsecond, I think.

The duration added to a time results in a time and the default format is what 
you asked for.

Another example:

string(xs:time("00:00:00.000") + xs:dayTimeDuration("PT9999999.9999S"))

is:



On 8/29/17, 12:51 PM, "[email protected] on behalf of Dave 
Day" <[email protected] on behalf of 
[email protected]> wrote:

          Greetings List,
I've got an 8 byte value that is the output of a Store Clock
     instruction on a mainframe.  The value created by the instruction is a
     64 bit hex value where  bit 51 is equal to one microsecond. To get a
     value that is microseconds, the original clock value is shifted to the
     right 12 bits. The clock started at all 0's on January 1st, 1900.
I need to be able to store and do basic math(addition and
     subtraction) on the value in microseconds.  And, these values will need
     to be displayed on a browser in HH:MM:SS.TTTTTT format.
If I create the decimal value for the integer on the mainframe when
     creating the XML record, I will have to go thru some conversion logic.
     There could be possibly millions of these records in one XML database.
It seems to me to make more sense to create the value as a
     hexBinary element, and then have some code running within  BaseX do the
     conversion to create the correct time value.
Is this the way to do something like this? Regards, -- Dave Day

Reply via email to