如何将Java TimeStamp转换为ms访问日期?

我想将一个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 date= new java.util.Date(); return new Timestamp(date.getTime()); } 

错误:[Microsoft] [ODBC Microsoft Access驱动程序]条件表达式中的数据类型不匹配。

您需要将java.util.Data转换为java.sql.Date或者如果需要java.sql.Timestamp的精度,请将Database类型更改为TIMESTAMP

一些代码来创建java.sql.Date

  java.util.Date today = new java.util.Date(); long t = today.getTime(); java.sql.Date dt = new java.sql.Date(t); 

然后你可以把java.sql.Date放在你的数据库中,总是对我有用。

对于信息:

  • java.sql.Date对应于SQL DATE它存储年,月和日,小时,分钟,秒和毫秒则被忽略。 另外, sql.Date与时区sql.Date
  • java.sql.Time对应于SQL TIME仅包含有关小时,分钟,秒和毫秒的信息
  • java.sql.Timestamp对应于SQL TIMESTAMP ,它是纳秒的日期( 注意util.Date只支持毫秒! )。