2015-05-07 135 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);