gpt4 book ai didi

java - 如何将 Timestamp(date.getTime()) 转换为 ms access Date?

转载 作者:行者123 更新时间:2023-12-01 15:03:18 24 4
gpt4 key购买 nike

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/

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