问题
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:
UCanAccess expects date literals to be enclosed in hash marks (
#
), andUCanAccess normally expects
xx/yy/zzzz
date literals to beMM/dd/yyyy
, notdd/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