2014-03-02 17 views
1
Date dateformat=null; 
Date i5Date=null; 

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); 
String date = i5t1.getText(); 

i5Date=(Date) formatter.parse(date); 



while(rs.next()) 
{ 
rs.moveToInsertRow(); 
rs.updateDate("Date",i5Date); 
rs.insertRow(); 
} 

這不會更新日期格式的結果集。我可以知道我必須做什麼更改來更新日期格式的結果集。 (注意: - 我不想以字符串格式更新。) 注意: - 我已經建立連接並打開結果集。如何將日期格式更新爲結果集?

+0

注意到將改變格式存儲在數據庫中的日期值,這就是關鍵點,格式是無關緊要的,只有日期的值是重要的,這樣,當你想要的時候,你可以形成無論你想要什麼。試試這個,使用System.out.println(i5Date);我敢打賭它的格式不是「dd/MM/yyyy」 – MadProgrammer

+0

所以,你的意思是說,如果我在字符串格式中進行更新,它並不重要嗎? 我的要求是,在我輸入開始日期和結束日期的另一個框架中,我應該能夠檢索它們之間的所有報告。我可以使用日期作爲字符串來實現它嗎? – Toms

+0

你可以將字符串轉換爲日期並在SQL函數 – MadProgrammer

回答

2

結果集中的日期是java.sql.Date類型。您正嘗試格式化java.util.Date。

您需要在它們之間進行轉換才能使其工作,假設您只是渲染日期。 如果不是,您需要直接對您的模式進行更改。看到這些SO帖子:

ResultSet.getTimestamp("date") vs ResultSet.getTimestamp("date", Calendar.getInstance(tz))

java.util.Date vs java.sql.Date

更新 要日期之間取得像你正在嘗試做的,你需要做的:

Connection conn = null; 
PreparedStatement pstmt = null; 

conn = getConnection(); 
String query = "select * from table_name between ? and ?"; 
pstmt = conn.prepareStatement(query); 
pstmt.setDate(1, new java.sql.Date(startDate.getTime())); 
pstmt.setDate(2, new java.sql.Date(endDate.getTime())); 

ResultSet resultSet = pstmt.executeQuery(); 
+0

感謝您的幫助。我得到這些是兩件不同的事情。 但是,可以使用我使用的代碼樣式更新結果集? – Toms

+0

不可以。您只能更新日期的值而不是格式。 – unekwu

+0

我的意思是打開結果集並更新列的值 – Toms

相關問題