繁体   English   中英

将日期时间插入 MS Access

[英]Insert DateTime into MS Access

如何将java中的DateTime转换为与MS Access数据库匹配的格式?
这就是我格式化日期的方式:

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
String stringDate = dateFormat.format(date);
System.out.println(stringDate);

然后这是我的 SQL 查询:

String sql = "INSERT INTO tblBorrows(DateIn) VALUES (" + dateFormat.parse(stringDate) + ")";

我打印出stringDate ,它给了我2016/03/29 16:42:24 ,但对于我的 sql,它是INSERT INTO tblBorrows(DateIn) VALUES (Tue Mar 29 16:42:24 SGT 2016)

这是我的异常消息: net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.4 unexpected token: MAR required: )

在我的 MS Access 中,我选择 General Date 作为我的日期/时间格式: 在此处输入图片说明

改变:

String sql = "INSERT INTO tblBorrows(DateIn) VALUES (" + dateFormat.parse(stringDate) + ")";

String sql = "INSERT INTO tblBorrows(DateIn) VALUES (#" stringDate + "#)";

也许您应该尝试使用准备好的语句进行数据库操作:

import java.sql.*;

public class jdbcMsAccess {

    public static void main(String[] args) {
        try {
            Connection conn = DriverManager.getConnection(
                    "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};" + 
                    "Dbq=C:\\__tmp\\Database1.accdb;");
            Date date = new Date();
            PreparedStatement s = conn.prepareStatement(
                    "INSERT INTO tblBorrows(DateIn) VALUES (?)");
            s.setDate(1, new java.sql.Date(date.getTime()));
            s.execute();
            s.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace(System.out);
        }

    }
}

在 Access 中为日期时间使用正确的分隔符:

String sql = "INSERT INTO tblBorrows(DateIn) VALUES (#" + stringDate + "#)";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM