![](/img/trans.png)
[英]Unable to compare java.util.Date value with MySQL datetime column values
[英]JDBC and MySQL, how to persist java.util.Date to a DATETIME column?
我很難理解如何讓它發揮作用。 我有一個准備好的語句,我想堅持java.util.date。 它不起作用。 我試圖把它強制轉換為java.sql.Date,它仍然無法正常工作。 java日期框架的問題是什么,它真的不是直截了當的。
您應該使用java.sql.Timestamp
在DATETIME
字段中存儲java.util.Date
。 如果你檢查兩個類的javadocs(點擊上面的鏈接!),你會看到Timestamp
有一個構造函數花費時間毫秒,而Date
有一個getter以毫秒為單位返回時間。
算一算:
preparedStatement.setTimestamp(index, new Timestamp(date.getTime()));
// ...
你不應該使用java.sql.Date
,因為它僅代表日期部分,沒有時間部分。 這樣,您將在DATETIME
字段中以00:00:00
結束時間。
僅供參考,因為Timestamp
是java.util.Date
的子類,所以只要從ResultSet
獲取它,就可以將其向上轉換。
Date date = resultSet.getTimestamp("columnname");
// ...
這樣做:
int dateColumnId = 0; // or whatever the value needs to be.
java.util.Date incomingValue = new java.util.Date(System.currentTimeMillis());
java.sql.Date databaseValue = new java.sql.Date(incomingValue.getTime());
ps.setDate(dateColumnId, databaseValue);
也許你可以試試這個:
java.util.Date now = new java.util.Date();
java.sql.Date date = new java.sql.Date(now.getTime());
pstmt.setDate(columnIndex,date);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.