如何将Timestamp(date.getTime())转换为ms访问日期? [英] How to convert Timestamp(date.getTime()) into ms access Date?

查看:210
本文介绍了如何将Timestamp(date.getTime())转换为ms访问日期?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能重复:
如何将Java时间戳转换为ms访问日期?

Possible Duplicate:
How to convert Java TimeStamp into ms access Date?

我想在msaccess数据库中插入一个Java时间戳,但是出现下面列出的错误. ms-access字段已设置为DATE数据类型.任何建议将不胜感激.谢谢

I would like to insert a java Timestamp into an msaccess database but I am getting an error which is listed below. The ms-access field has been set to a DATE datatype. Any advise would be deeply appreciated. Thanks

这是我的DAO类方法:

Here's my DAO class method:

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驱动程序]条件表达式中的数据类型不匹配.

Error: [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

建议更改:

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)

推荐答案

让数据库引擎对插入到SaleTimestamp字段中的值使用其Now()函数.

Ask the db engine to use its Now() function for the value you insert into your SaleTimestamp field.

String sql = "INSERT INTO Sale (SaleDetails, SaleTotal, SaleTimestamp)"
            + " VALUES ('"+saleDetails+"','"+saleTotal+"',Now())";

Java应该有某种方式可以将文本字符串写入文件或控制台.建议您找到并使用这种方法,以便有机会查看自己要数据库引擎执行的完整SQL语句.根据我在另一个Java问题中看到的内容,我建议...

Java should have some way to write a text string to a file or console. Suggest you find and use such a method in order to give yourself the opportunity to view the completed SQL statement you're asking the db engine to execute. Based on what I saw in another Java question, I'll suggest ...

System.out.println(sql);

不幸的是,我不懂Java.如果该建议不起作用,请找到另一种方法.

Unfortunately I don't know Java. If that suggestion does not work, find another way to do it.

这篇关于如何将Timestamp(date.getTime())转换为ms访问日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆