invalid datetime format: insert date/time into Access from Java

江枫思渺然 提交于 2019-12-01 07:51:35

问题


I want to insert a datetime value to Access, but I get this error:

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.4 data exception: invalid datetime format

Here is the code :

private void txtsubmitActionPerformed(java.awt.event.ActionEvent evt) {                                          
    SimpleDateFormat A = new SimpleDateFormat("dd/MM/yyyy");
    Peminjaman P= new Peminjaman(setIDTrans(),txtid.getText(),A.format(txttglpinjam.getDate()),A.format(txttglkembali.getDate()),txtplat.getText(),txtnama.getText(),txtdriver.getText());
    c.InsertPeminjamanD(P);

回答1:


The error message indicates that your InsertPeminjamanD method is ultimately trying to do something like

INSERT INTO Table1 (DateTimeField) VALUES ('31/05/2016')

and that won't work for two reasons:

  1. UCanAccess expects date literals to be enclosed in hash marks (#), and

  2. UCanAccess normally expects xx/yy/zzzz date literals to be MM/dd/yyyy, not dd/MM/yyyy.

So, the above query will work if it is rearranged as ...

INSERT INTO Table1 (DateTimeField) VALUES (#05/31/2016#)

... although it really would be better to use a PreparedStatement and pass it a proper date value:

String sql = "INSERT INTO Table1 (DateTimeField) VALUES (?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setDate(1, java.sql.Date.valueOf("2016-05-31"));
ps.executeUpdate();


来源:https://stackoverflow.com/questions/37645086/invalid-datetime-format-insert-date-time-into-access-from-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!