Re: Timestamp Question - Mailing list pgsql-jdbc

From Greg Markham
Subject Re: Timestamp Question
Date
Msg-id 40F1D944.3050801@markhamdirect.com
Whole thread Raw
In response to Re: Timestamp Question  (Oliver Jowett <oliver@opencloud.com>)
List pgsql-jdbc
To All:

Thank you for all your time, help and knowledge on this subject.

- Greg Markham

Oliver Jowett wrote:

> Greg Markham wrote:
>
>> Oliver Jowett wrote:
>>
>>> Greg Markham wrote:
>>>
>>>> I have searched the archives and not found and answer to this
>>>> question:
>>>>
>>>> I am trying to use a Java Timestamp object to create a Postgresql
>>>> Timestamp(6) field.  I can insert a Timestamp but it only goes to
>>>> the millisecond(2004-07-10 12:59:59.123) I need it to the
>>>> microsecond (2004-07-10 12:59:59.123456).  Is there a way to do this?
>>>
>>>
>>>
>>>
>>> From a quick look at the driver code, it appears to support
>>> nanosecond precision in Timestamps.
>>>
>>> What exactly is the problem you see? Can you provide a testcase?
>>>
>>> -O
>>>
>> Timestamp myTs = new Timestamp(System.currentTimeMillis());
>
>
> Ah, Dave was right then, you are trying to insert the current time :)
> I thought you were dealing with some time data that actually had
> sub-millisecond precision.
>
>> When I create a timestamp using the system.currentTimeMillis it just
>> doesn't create a timestamp that has the precision I want.
>
>
> Right -- as the name suggests, System.currentTimeMillis() counts in
> milliseconds.
>
>> I want the timestamp out past the millisecond and out to the
>> microsecond like 2004-07-11 15:34:26.274123.  How would I use the
>> timestamp object to get to that precision?  Do I have to use a JNI call?
>
>
> Yes, you'll probably have to use JNI if you want to get
> sub-millisecond precision *in Java*.
>
> If you're only dealing with durations you might want to look at 1.5's
> (sorry, 5.0's .. sigh) System.nanoTime() -- it's not useful for
> absolute timestamps but you can compute durations from it just fine.
>
> Another alternative, as Dave Cramer suggested, is to use now() (server
> timestamp at start of transaction) or timeofday() (server timestamp at
> point of evaluation) in your SQL -- this will use the DB server
> timestamp to whatever precision is supported:
>
>> test=# select timeofday();
>>               timeofday
>> --------------------------------------
>>  Mon Jul 12 11:47:32.783796 2004 NZST
>> (1 row)
>
>
> -O
>


pgsql-jdbc by date:

Previous
From: Oliver Jowett
Date:
Subject: Re: Timestamp Question
Next
From: "Dario V. Fassi"
Date:
Subject: Re: Timestamp Question