日期时间格式无效:将 date/time 从 Java 插入到 Access 中
invalid datetime format: insert date/time into Access from Java
我想向 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();
我想向 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();