2

タイプ のテーブルに列があり、datetimejdbc を使用してその列を Java アプリケーションに取得しています。

私の問題は2014-05-13 23:49:18.150、データベースに保存すると2014-04-13、Java アプリケーションになることです。

すべての日付を取得する方法には、時間 (家、秒、分) が含まれます。

Java コード

callableStatement = con
                    .prepareCall("{call getStatusForOrder(?,?,?,?,?)}");
            callableStatement.setInt(1, order.getID());
            callableStatement.registerOutParameter(2, java.sql.Types.INTEGER);
            callableStatement.registerOutParameter(3, java.sql.Types.DATE);
            callableStatement.registerOutParameter(4, java.sql.Types.DATE);
            callableStatement.registerOutParameter(5, java.sql.Types.BIT);
            callableStatement.execute();
            int statusID = callableStatement.getInt(2);
            Date startTime = callableStatement.getDate(3);
            Date endTime = callableStatement.getDate(4);
            boolean isActive = callableStatement.getBoolean(5);
            System.out.println("IsActive = " + isActive);
            System.out.println("Start Date = " + startTime.toString());
4

4 に答える 4

4

Timestampの代わりに を使用し、と のDate両方datetimeを にdatetime2マップしjava.sql.Timestampます。

ドキュメントを参照してください。

PS。callableStatement.getTimestampの代わりに使用することを忘れないでくださいcallableStatement.getDate

http://docs.oracle.com/javase/6/docs/api/java/sql/CallableStatement.html#getTimestamp(int)

于 2013-05-14T09:32:42.783 に答える
1

Types.DATE日付コンポーネントのみを持ち、時刻を持たない JDBC (および SQL) データ型を示します。時間部分を含める場合Types.TIMESTAMPは、関連get/setTimestamp(..)するメソッドとクラスを使用する必要があります。java.sql.Timestamp

于 2013-05-14T10:40:49.297 に答える