2015-05-07 63 views
0
import java.io.*; 
import java.sql.*; 
public class CsvF { 

public static void main(String[] args) { 
try 
{ 
Class.forName("oracle.jdbc.driver.OracleDriver"); 

Connection conn= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","sandp"); 
conn.setAutoCommit(false); 
Statement st=conn.createStatement(); 
ResultSet rs=st.executeQuery("select * from tet where to_char(S_DATE,'HH24') = '23'"); 

ResultSetMetaData rsmd = rs.getMetaData(); 
FileWriter cname = new FileWriter("D:\\asd.csv"); 
BufferedWriter bwOutFile = new BufferedWriter(cname); 
StringBuffer sbOutput = new StringBuffer(); 
sbOutput.append("S_DATE"); 
bwOutFile.append(sbOutput); 
bwOutFile.append(System.getProperty("line.separator")); 
System.out.println("No of columns in the table:"+ rsmd.getColumnCount()); 

for (int i = 1; i <= rsmd.getColumnCount(); i++) 
{ 
String fname = rsmd.getColumnName(i); 
} 

System.out.println(); 



while(rs.next()) 
{ 
System.out.print(rs.getString(1)); 
bwOutFile.append(rs.getString(1)); 
bwOutFile.append(System.getProperty("line.separator")); 
bwOutFile.flush(); 
System.out.println(); 
} 
conn.close(); 

} 
catch(SQLException se) 
{ 
se.printStackTrace(); 
} 
catch(Exception e) 
    { 
System.out.println("Unable to connect to database" +e); 
} 

} 


} 

這裏我正在將數據導入asd.csv文件,如下所示= 2015-2-26.23.21。 0. 0從oracle數據庫導出到csv文件

2015-2-26.23.43。 0. 0

2015-2-27.23.28。 0. 0

2015-2-27.23.50。 0. 0

2015-3-1.23.19。 0. 0

2015-3-1.23.41。 0 0

,但我想獲得的數據作爲以下格式= 2015年2月26日23時21分

2015年2月26日23時43分

2015年2月27日23點28分

2015年2月27日23:50

2015年3月1日23:19

2015年3月1日23:41

我在輸出中得到一個額外的點(「。」)......我做錯了什麼? 我已經創建了一個名爲tet with coloumn(S_DATE)的表,其中S_DATE是時間戳...任何人都可以幫助我嗎?

回答

1

使用rs.getTimestamp()代替rs.getString()並使用SimpleDateFormat將您的時間戳轉換爲字符串。

TimeStamp ts= rs.getTimeStamp(1); 
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd hh:mm"); 
String yourFormatedDate = formater.format(ts);