我使用csvwriter(opencsv)将sql server中的表导出为CSV文件,在csv文件中更改日期格式。 sql server中的实际日期格式为YYYY-MM-DD HH:MI:SS但它转换为2014年9月19日09:13:00。我正在使用Ubuntu操作系统。
答案 0 :(得分:1)
我遇到了同样的问题,但是看起来您可以设置CSVWriter将使用的格式:
CSVWriter csvWriter = ..
ResultSetHelperService resultSetHelperService= new ResultSetHelperService();
resultSetHelperService.setDateFormat("yyyy-MM-dd");
resultSetHelperService.setDateTimeFormat("yyyy-MM-dd HH:MI:SS");
csvWriter.setResultService(resultSetHelperService);
答案 1 :(得分:0)
在您的查询中,使得从sql查询返回的日期采用您喜欢的格式。例如:
SELECT lastName, DATE_FORMAT(someDate,'%Y-%m-%d %T') AS columnName from mytable
这种方式当它返回到CSV编写器时,它将采用您选择的格式。然后,您可以使用查询循环并写入。
String[] columns = {"lastName","columnName"};
writer.writeNext(columns);
while(rs.next()){
String[] values = {
rs.getString("lastName"),
rs.getString("columnName")
};
writer.writeNext(values);
}
答案 2 :(得分:0)
将查询格式化为:
select ''||to_date(your_date_field, 'yyyy-mm-dd') from your_table
将空字符串添加到选定的日期字段会使CSVWriter将其视为字符串并按原样写入。