0

タイムスタンプを列の値として持つテーブルに新しい行を挿入しようとしています。以下は私のコードです:

long millisecs = System.currentTimeMillis() ;
Timestamp ts = new java.sql.Timestamp(millisecs) ;
s.executeUpdate("INSERT INTO tblPublicHols(Date) VALUES("+ts+")");

また、次のように PreparedStatement を使用してそれを実行しようとしました。

long millisecs = System.currentTimeMillis() ;
Timestamp ts = new java.sql.Timestamp(millisecs) ;
PreparedStatement pstmt ;
pstmt = conn.prepareStatement("INSERT INTO tblBasicHoliday " +
                 "(Date, RegionID) " +
                 "VALUES (?, ?)") ;
pstmt.clearParameters() ;
pstmt.setTimestamp(1, ts);
pstmt.setInt(2, 1);
int count = 0 ;
count = pstmt.executeUpdate() ;

それでも、次のように同じエラーが発生します

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

誰でもこれについて私を助けることができますか? ありがとう。

4

2 に答える 2

0

Date問題はそれが予約語であることだと強く思います。試す:

String sql = "INSERT INTO tblBasicHoliday ([Date], RegionID) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);

finally(ブロック内のステートメントも閉じる必要があることに注意してください。)

于 2013-05-02T16:57:26.430 に答える