如何将Java TimeStamp转换为ms访问日期? [英] How to convert Java TimeStamp into ms access Date?
问题描述
我想在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
对应SQLDATE
它存储年,月和日,而忽略小时,分钟,秒和毫秒。另外sql.Date
与时区无关。 -
java.sql.Time
对应SQLTIME
andonly包含有关小时,分钟,秒和毫秒的信息。 -
java.sql.Timestamp
对应于SQLTIMESTAMP
这是纳秒的日期(注意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 SQLDATE
it stores years, months and days while hour, minute, second and millisecond are ignored. Additionallysql.Date
isn't tied to timezones.java.sql.Time
corresponds to SQLTIME
andonly contains information about hour, minutes, seconds and milliseconds.java.sql.Timestamp
corresponds to SQLTIMESTAMP
which is the date to the nanosecond (note thatutil.Date
only supports milliseconds!).
这篇关于如何将Java TimeStamp转换为ms访问日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!