编程语言
首页 > 编程语言> > 无效的日期时间格式:将日期/时间插入到Java的Access中

无效的日期时间格式:将日期/时间插入到Java的Access中

作者:互联网

我想向Access插入日期时间值,但是我收到此错误:

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

这是代码:

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);

解决方法:

错误消息表明您的InsertPeminjamanD方法最终尝试执行类似的操作

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

这不会有两个原因:

> UCanAccess期望日期文字用哈希标记(#)括起来
> UCanAccess通常希望xx / yy / zzzz日期文字为MM / dd / yyyy,而不是dd / MM / yyyy.

因此,如果将上面的查询重新排列为…,则上述查询将起作用

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

…虽然最好使用PreparedStatement并将其传递给正确的日期值:

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

标签:java,ms-access,jdbc,ucanaccess
来源: https://codeday.me/bug/20191008/1874352.html