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