2015-11-08 145 views
0

我試圖將24小時格式的時間轉換爲日期時間格式,因此我可以將它作爲日期時間存儲在Mysql中。我試過谷歌,但所有的結果都是以其他方式來做的。例如,如何將21:30轉換爲datetime格式?將24小時格式轉換爲MySQL DATETIME格式

+0

你爲什麼不使用標準的SQL'TIMESTAMP'數據類型呢? – fge

+0

表已創建。我現在無法改變它。 – Isuru

回答

1

MySQL DATETIME列存儲日期和時間,而不僅僅是一個時間,並且您不會有史以來格式作爲字符串發送到數據庫。使用PreparedStatement來防止SQL Injection攻擊。

實例1:

Date now = new Date(); 

String sql = "INSERT INTO MyTable (MyDateTime) VALUES (?)"; 
try (PreparedStatement stmt = conn.prepareStatement(sql)) { 
    stmt.setTimestamp(1, new Timestamp(now.getTime())); 
    stmt.executeUpdate(); 
} 

例2:

String dateText = "11/8/2015 1:35 PM"; 
Date dateTime = new SimpleDateFormat("M/d/yyyy h:mm a").parse(dateText); 

String sql = "UPDATE MyTable SET MyDateTime = ? WHERE MyId = ?"; 
try (PreparedStatement stmt = conn.prepareStatement(sql)) { 
    stmt.setTimestamp(1, new Timestamp(dateTime.getTime())); 
    stmt.setInt(2, 1234); 
    stmt.executeUpdate(); 
} 
0

可以使用java.util.Date,定義所需的時間和使用java.sql.Date的構造函數,並在參數使用函數.getTime(),像這樣:

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

的java.sql.Date,只使用了日,月,年,如果你想與小時,分鐘和秒,你使用第二個變量是至極類型爲java.sql.Time的:

java.util.Date utilDate = new java.util.Date(); 
java.sql.Time sqlDate = new java.sql.Time(utilDate.getTime()); 
相關問題