无效的日期时间格式:将日期/时间插入到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();

相关文章

连接数据库的方式:第一种方式:ODBC:开放数据库连接是微软...
JDBCRequest 使用VariableNamesmysql:数据库连接池对象var...
 1.JDBCDBC(JavaDataBaseConnectivity):Java数据库连接技术...
1.需要jar包的支持:java.sqljavax.sqlmysql-conneter-java....
1.简介Activiti是一个业务流程管理(BPM)框架,它是覆盖了业务...
1.JDBC体系系统一组规范:接口JDBC接口(API)包括两个层次:...