作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Possible Duplicate:
How to convert Java TimeStamp into ms access Date?
我想将 java 时间戳插入到 msaccess 数据库中,但收到下面列出的错误。 ms-access 字段已设置为 DATE 数据类型。任何建议将不胜感激。谢谢
这是我的 DAO 类方法:
public void addSale(String saleDetails, String saleTotal, Timestamp saleTimestamp)
throws ClassNotFoundException, SQLException {
Statement myStatement = getConnection();
String sql = "INSERT INTO Sale (SaleDetails, SaleTotal, SaleTimestamp)"
+ " VALUES ('"+saleDetails+"','"+saleTotal+"','"+saleTimestamp+"')";
myStatement.executeUpdate(sql);
closeConnection();
我的DTO方法:
public void storeSale(String saleDetails, String saleTotal, Timestamp saleTimestamp){
DAO dao = DAO.getDAO();
try {
dao.addSale(saleDetails, saleTotal, saleTimestamp);
} catch (ClassNotFoundException | SQLException ex) {
Logger.getLogger(Sale.class.getName()).log(Level.SEVERE, null, ex);
}
我的时间戳方法:
public Timestamp addTimestamp(){
java.util.Date today = new java.util.Date();
long time = today.getTime();
java.sql.Date date = new java.sql.Date(time);
return new Timestamp(date.getTime());
错误: [Microsoft][ODBC Microsoft Access 驱动程序]条件表达式中的数据类型不匹配。
建议更改:
public void addSale(String saleDetails, String saleTotal)
throws ClassNotFoundException, SQLException {
Statement myStatement = getConnection();
String sql = "INSERT INTO Sale (SaleDetails, SaleTotal, SaleTimestamp)"
+ " VALUES ('"+saleDetails+"','"+saleTotal+"',Now())";
myStatement.executeUpdate(sql);
closeConnection();
新错误:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error in string in query expression ''Now())'.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3109)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:337)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:287)
最佳答案
要求数据库引擎使用其 Now()
函数来获取您插入到 SaleTimestamp
字段中的值。
String sql = "INSERT INTO Sale (SaleDetails, SaleTotal, SaleTimestamp)"
+ " VALUES ('"+saleDetails+"','"+saleTotal+"',Now())";
Java 应该有某种方法将文本字符串写入文件或控制台。建议您找到并使用这样的方法,以便让自己有机会查看要求数据库引擎执行的完整 SQL 语句。根据我在另一个 Java 问题中看到的内容,我建议...
System.out.println(sql);
不幸的是我不懂Java。如果该建议不起作用,请寻找其他方法。
关于java - 如何将 Timestamp(date.getTime()) 转换为 ms access Date?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13324175/
我是一名优秀的程序员,十分优秀!