Обсуждение: Timestamp
I read your latest java/JDBC news and i saw that you fixed the timestamp problem, yet when i install the new jar files an run this code
DataSource d = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/macquarie_awards");
java.sql.Connection conn = d.getConnection();
out.println(conn.getMetaData().getDriverVersion() + "<BR>");
java.sql.PreparedStatement pstmt;
pstmt = conn.prepareStatement("SELECT o.id FROM question o WHERE (o.question_date = ?)");
pstmt.setTimestamp(1, new java.sql.Timestamp(1024668000000L));
out.println(new java.sql.Timestamp(1024668000000L) + "<BR>");
out.println(pstmt + "<BR>");
java.sql.Connection conn = d.getConnection();
out.println(conn.getMetaData().getDriverVersion() + "<BR>");
java.sql.PreparedStatement pstmt;
pstmt = conn.prepareStatement("SELECT o.id FROM question o WHERE (o.question_date = ?)");
pstmt.setTimestamp(1, new java.sql.Timestamp(1024668000000L));
out.println(new java.sql.Timestamp(1024668000000L) + "<BR>");
out.println(pstmt + "<BR>");
I get the following output, which clearly marks to me that setTimestamp is doing something wrong
PostgreSQL 7.2 JDBC2
2002-06-22 00:00:00.0
SELECT o.id FROM question o WHERE (o.question_date = '2002-06-21 14:00:00.00+00')
2002-06-22 00:00:00.0
SELECT o.id FROM question o WHERE (o.question_date = '2002-06-21 14:00:00.00+00')
Is this being fixed, cause my EJB are not returning the right values cause of this
You may want to try the dev driver. Any modifications between releases
will be built into that jar, as opposed to the release jar
Dave
On Sun, 2002-06-23 at 21:09, Alex Falkowski wrote:
> I read your latest java/JDBC news and i saw that you fixed the timestamp problem, yet when i install the new jar
filesan run this code
>
> DataSource d = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/macquarie_awards");
>
> java.sql.Connection conn = d.getConnection();
>
> out.println(conn.getMetaData().getDriverVersion() + "<BR>");
> java.sql.PreparedStatement pstmt;
> pstmt = conn.prepareStatement("SELECT o.id FROM question o WHERE (o.question_date = ?)");
> pstmt.setTimestamp(1, new java.sql.Timestamp(1024668000000L));
>
> out.println(new java.sql.Timestamp(1024668000000L) + "<BR>");
> out.println(pstmt + "<BR>");
>
> I get the following output, which clearly marks to me that setTimestamp is doing something wrong
>
> PostgreSQL 7.2 JDBC2
> 2002-06-22 00:00:00.0
> SELECT o.id FROM question o WHERE (o.question_date = '2002-06-21 14:00:00.00+00')
>
> Is this being fixed, cause my EJB are not returning the right values cause of this
>
"Alex Falkowski" <alex@l-o-u-d.com> writes:
> I get the following output, which clearly marks to me that setTimestamp is =
> doing something wrong
> PostgreSQL 7.2 JDBC2
> 2002-06-22 00:00:00.0
> SELECT o.id FROM question o WHERE (o.question_date =3D '2002-06-21 14:00:00=
> .00+00')
It's not apparent to me that this is wrong --- is the second println
reporting the Timestamp's value in your local timezone? I guess that
your local timezone is GMT+10 from your Date: header, in which case
the two values are perfectly consistent.
regards, tom lane
Alex,
I don't see anything wrong in what you have shown here. You must
understand that Timestamp.toString() prints out the timestamp in the
local timezone. You will see that the PreparedStatement is using the
GMT timezone (i.e. +00). Thus these two are identical (assuming your
local timezone is GMT-10).
thanks,
--Barry
Alex Falkowski wrote:
> I read your latest java/JDBC news and i saw that you fixed the
> timestamp problem, yet when i install the new jar files an run this code
>
> DataSource d = (DataSource) new
> InitialContext().lookup("java:comp/env/jdbc/macquarie_awards");
>
> java.sql.Connection conn = d.getConnection();
>
> out.println(conn.getMetaData().getDriverVersion() + "<BR>");
> java.sql.PreparedStatement pstmt;
> pstmt = conn.prepareStatement("SELECT o.id FROM question o
> WHERE (o.question_date = ?)");
> pstmt.setTimestamp(1, new java.sql.Timestamp(1024668000000L));
>
> out.println(new java.sql.Timestamp(1024668000000L) + "<BR>");
> out.println(pstmt + "<BR>");
>
> I get the following output, which clearly marks to me that
> setTimestamp is doing something wrong
>
> PostgreSQL 7.2 JDBC2
> 2002-06-22 00:00:00.0
> SELECT o.id FROM question o WHERE (o.question_date = '2002-06-21
> 14:00:00.00+00')
>
> Is this being fixed, cause my EJB are not returning the right values
> cause of this