如何将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
对应于SQLDATE
它存储年,月和日,而小时,分钟,秒和毫秒则被忽略。 另外,sql.Date
与时区sql.Date
。 -
java.sql.Time
对应于SQLTIME
仅包含有关小时,分钟,秒和毫秒的信息 。 -
java.sql.Timestamp
对应于SQLTIMESTAMP
,它是纳秒的日期( 注意util.Date
只支持毫秒! )。