gpt4 book ai didi

java - 如何将 Java TimeStamp 转换为 ms access Date?

转载 作者:行者123 更新时间:2023-11-29 05:52:41 25 4
gpt4 key购买 nike

我想将 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 Driver] 条件表达式中的数据类型不匹配。

最佳答案

您需要将 java.util.Data 转换为 java.sql.Date 或者如果您需要 java.sql.Timestamp 的精度 将您的数据库类型更改为 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 与时区无关。
  • java.sql.Time对应 SQL TIME,只包含小时、分钟、秒和毫秒的信息。
  • java.sql.Timestamp对应于 SQL TIMESTAMP,它是纳秒级的日期(请注意 util.Date 仅支持毫秒!)。

关于java - 如何将 Java TimeStamp 转换为 ms access Date?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13322934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com