I had this problem with PostgreSQL,
the simplest solution is to save your timestamp as a long and construct a 
Date object with this long value,
I've seen some sites that say the problem is a JDBC driver problem, with the 
PostgreSQL JDBC driver. The problem lies with the getTimeStamp() method as 
far as I can remember,
the short of all this is:
use a long value, from System.getcurrentTimeMilliseconds()..
write this value to the DB,
create a new Date object passing in the long value as the parameter...
Hope this helps,
Oisin

On Monday 08 October 2001 09:04, Eddie wrote:
> Thanks Frederik,
>
> But what I don't understand is why Date only contains the second part and
> not the millisecond part and when it does ? That is, when I create a Date
> object and print the millisecond part with the getTime() method, I do see
> the millisecond part but when I receive something from the database, the
> millisecond part is zero. Does this mean that is only zero when the date
> field is handled by the JDBC part ??
>
> Eddie
>
> ----- Original Message -----
> From: "Fredrik Lindgren" <[EMAIL PROTECTED]>
> To: "Orion-Interest" <[EMAIL PROTECTED]>
> Sent: Friday, October 05, 2001 6:50 PM
> Subject: Re: Date conversion problem ??
>
> > You are right that is not the JDBC driver that makes this happen. It is
> > JDBC itself. java.sql.Timestamp is a subclass of java.util.Date but it
> > returns the integral seconds when calling getTime(). It supports nano
> > second precision with the getNanos() method.
> >
> > The javadoc includes this note:
> > Note: This type is a composite of a java.util.Date and a separate
> > nanoseconds value. Only integral seconds are stored in the
> > java.util.Date component. The fractional seconds - the nanos - are
> > separate. The getTime method will return only integral seconds. If a
> > time value that includes the fractional seconds is desired, you must
> > convert nanos to milliseconds (nanos/1000000) and add this to the
> > getTime value.  The Timestamp.equals(Object) method never returns  true
> > when passed a value of type java.util.Date because the nanos component
> > of a date is unknown. As a result, the Timestamp.equals(Object) method
> > is not symmetric with respect to the java.util.Date.equals(Object)
> > method.  Also, the hashcode method uses the underlying  java.util.Date
> > implementation and therefore does not include nanos in its computation.
> >
> >   Due to the differences between the Timestamp class and the
> > java.util.Date class mentioned above, it is recommended that code not
> > view Timestamp values generically as an instance of java.util.Date.  The
> > inheritance relationship between Timestamp and java.util.Date really
> > denotes implementation inheritance, and not type inheritance.
> >
> > I hope this helped
> >
> > /Fredrik Lindgren
> >
> > Ed Bras wrote:
> > > Hellu,
> > >
> > > I retrieve a datetime  field from the Ms SQL server. With a win sql
>
> client I
>
> > > see:
> > > 2001-10-03 19:33:10.257
> > >
> > > When I print the field in an EJB (I use CMP) the millisecond part is
>
> zero
>
> > > !!!:
> > > Wed Oct 03 19:33:10 GMT+02:00 2001
> > > In milliseconds: 1002130390000
> > >
> > > I had the same problem with the Postgres driver so I don't think it is
>
> the
>
> > > JDBC driver (Opta driver of i-net)
> > >
> > > Has anyone any idea what is happening and how I can solve this ??
> > > Hope to get an answer, otherwise I have to convert the datetime fields
>
> in
>
> > > the database to a long to store it in milliseconds, which isn't very
>
> elegant
>
> > > I think !?
> > >
> > > Eddie

-- 


Reply via email to