2014-07-12 59 views
0

我想將此:17:26:54轉換爲TimeStamp數據類型。我需要將其輸入到數據庫中。我該怎麼做呢? 我有一個字符串變量的數據 我使用的是java。 我從另一個來源提取這些數據,我需要將它推入數據庫,其中時間戳的列被定義爲TimeStamp類型。我正在使用JDBC將數據從Java程序推送到MySQL。 所以我需要一個解決方案將字符串:17:26:54轉換爲timeStamp數據類型,以便它可以在不引發sql異常錯誤的情況下進入數據庫。從字符串到TimeStamp數據類型的轉換

編輯:我不需要timeStamp的日期部分,因爲我沒有在我的計算中的任何地方使用它,也沒有從生成時間信息的源中提取它的選項。

+2

什麼日期?爲什麼數據庫? – Braj

+0

你知道關於JDBC的一切嗎? –

+0

我不需要數據..我從另一個來源提取這些數據。我只需要將它推入MySQL數據庫,在那裏我已經定義列爲「timestamp」數據類型。所以我只需要將它轉換爲可接受的格式,以便能夠使用JDBC將成功推送到MySQL – mv93

回答

2

使用PreparedStatement#setTime()PreparedStatement#setTimestamp()來插入java.sql.Timejava.sql.Timestamp

至字符串轉換爲日期或時間戳使用SimpleDateFormat

示例代碼:

String time="12/07/2014 17:26:54"; 

SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); 
Date date=format.parse(time); 

如果你嘗試下面的示例代碼,那麼默認的日期是1970年1月1日

String time="17:26:54"; 

SimpleDateFormat format=new SimpleDateFormat("HH:mm:ss"); 
Date date=format.parse(time); 

如何將Java日期轉換爲SQL日期?

java.util.Date javaDate=new java.util.Date(); 
java.sql.Date sqlDate=new java.sql.Date(javaDate.getTime()); 

如何將其插入到數據庫中的時間戳數據類型?

示例代碼:

String time="17:26:54"; 

SimpleDateFormat format=new SimpleDateFormat("HH:mm:ss"); 
Date date=format.parse(time); 

... 

PreparedStatement stmt = conn 
     .prepareStatement("insert into test(message,time) values(?,?)"); 
stmt.setString(1, "This is message"); 
stmt.setTimestamp(2, new java.sql.Timestamp(date.getTime())); 
stmt.executeUpdate(); 

查找complete sample code

+1

哇。太棒了。非常感謝!! – mv93

+0

如果問題得到解決,請通過接受所需答案來關閉該線程。 [訪問](http://stackoverflow.com/tour) – Braj

0

考慮用DateFormat類將字符串轉換爲java.util.Date實例。

java.sql.Timestamp可以用長日期表示法構造,可以通過getTime()方法從java.util.Date類實例中獲得。

0

根據您的意見

不事關我,因爲我不需要日期

使它成爲一個柱子TIME類型。然後按照getting started with JDBC guide,

java.sql.Time SQL TIME信息。 java.util.Date基類的年,月和日字段設置爲1970年1月和1日。這是Java時期的「零」日期。

Time構造,

long millis = (hour * 3600 * 1000) + (minutes * 60 * 1000) + (seconds * 1000); 
java.sql.Time time = new java.sql.Time(millis); 
+0

這是[不贊成使用的cosntrutor](http://docs.oracle.com/javase/7/docs/api/java/sql/Time.html#Time%28int ,%20int,%20int%29),你永遠不會建議任何人使用它。 – Braj

+0

感謝這有助於:)我會在我的數據庫中做到這一點。但爲了從Java寫入我的數據庫,我需要一個兼容的值(我不能插入字符串類型到時間類型)所以我需要將17:26:54轉換爲時間數據類型..我該怎麼做 – mv93

+0

使用setDate並傳遞一個Time對象,轉換爲幾分鐘和幾秒鐘,並使用上面的方法。 –

相關問題