如何将Java TimeStamp转换为ms访问日期? [英] How to convert Java TimeStamp into ms access Date?

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

问题描述

我想在msaccess数据库中插入一个java时间戳,但是我收到的错误如下所示。 ms-access字段已设置为DATE数据类型。任何建议都将深表感谢。谢谢



这是我的DAO类方法:

  public void addSale( String saleDetails,String saleTotal,Timestamp saleTimestamp)
抛出ClassNotFoundException,SQLException {

语句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();
返回新的Timestamp(date.getTime());
}

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

解决方案

您需要转换 java.util.Data java.sql.Date 或者如果你需要 java.sql.Timestamp的精度将您的数据库类型更改为 TIMESTAMP



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

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

然后你可以把java.sql.Date放在你的数据库中,这对我来说一直都有用。 / p>

对于信息:




  • java.sql.Date 对应SQL DATE 它存储年,月和日,而忽略小时,分钟,秒和毫秒。另外 sql.Date 与时区无关。

  • java.sql.Time 对应SQL TIME andonly包含有关小时,分钟,秒和毫秒的信息。

  • java.sql.Timestamp 对应于SQL TIMESTAMP 这是纳秒的日期(注意 util.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

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();

My DTO method:

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);
    }

My Timestamp method:

public Timestamp addTimestamp(){ 
    java.util.Date date= new java.util.Date();
return new Timestamp(date.getTime());
}

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

解决方案

You need to convert your java.util.Data to a java.sql.Date or if you need the precision of the java.sql.Timestamp change your Database type to TIMESTAMP

some code to create a java.sql.Date:

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

You can then put the java.sql.Date in your Database, did always work for me.

For Info:

  • java.sql.Date corresponds to SQL DATE it stores years, months and days while hour, minute, second and millisecond are ignored. Additionally sql.Date isn't tied to timezones.
  • java.sql.Time corresponds to SQL TIME andonly contains information about hour, minutes, seconds and milliseconds.
  • java.sql.Timestamp corresponds to SQL TIMESTAMP which is the date to the nanosecond (note that util.Date only supports milliseconds!).

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

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