2016-05-16 120 views
3

如何將Java TimeStamp對象轉換爲包含毫秒的SQL日期時間類型? 當我將我的TimeStamp obj插入數據庫時​​,毫秒消失了。Java sql - 如何將TimeStamp插入到包含毫秒的mysql數據庫中

這是我的Java源代碼的字符串轉換成一個Timestamp對象:

import java.sql.Timestamp; 
... 
... 
String timeStr = "2013-08-30 19:11:49.113"; 
Timestamp timeCreated = Timestamp.valueOf(timeStr); 
timeCreated.toString(); //returns "2013-08-30 19:11:49.113" 

我的表dfinition在SQL:

CREATE TABLE `Event` (EventTimeStamp datetime NOT NULL); 

這是我如何插入Timestamp對象到我的數據庫:

PreparedStatement psInsert; 
Connection conn = ... 
psInsert = conn 
      .prepareStatement("INSERT INTO `Event` (EventTimeStamp) VALUES(?)"); 

psInsert.setTimestamp(1, timeCreated); 
psInsert.executeUpdate(); 

插入後,TimeStamp被切斷,並且不再有毫秒:

2013-08-30 19:11:49 

THX

+0

你如何檢查數據庫中的值? –

+0

在MySql Workbench中:'SELECT * FROM Event;' – Craiten

+0

mysql是什麼版本? –

回答

1

你的數據庫列datetime有毫秒的地方。您應該使用datetime(3)

+0

這確實有竅門!謝謝!但是我需要爲這個解決方案安裝最新的mysql版本。 @Lashane thx的建議來更新我的MySQL。 – Craiten