关于数据库存取时间字段时只能显示日期(年月日)无法获取时间(时分秒)的问题是一个比较常见的问题,下面对于出现此问题做一个分析并找到一个解决方案。
出现此问题的原因:
由于java.util.Date类型虽然拥有时分秒,但是此类型只是java中的类,并不是数据库时间类型,是不能直接插入数据库中的;所以只能使用java.sql.Date存入数据库,但是它只有日期而没有时间。
问题解决:
方法一:将java.util.Date转化为java.sql.Timestamp
public java.sql.Timestamp getTimestamp(Date date) {
return new java.sql.Timestamp(date.getTime());
}
方法二:在写sql语句时将日期参数用to_date()函数进行转化
String sql =" UPDATE tablename SET state=?,deal_date=to_date(?,'yyyy-mm-dd hh24:mi:ss') where id=?
Connection conn = null;
PreparedStatement ps = null;
try {
Date date = new java.util.Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatdate = sdf.format(date);//获取格式化日期,带有时分秒
conn = getConnection();
ps = conn.prepareStatement(sql);
ps.setString(1, state);
ps.setString(2,formatdate);
ps.setLong(3,Long.valueOf(id));
ps.executeUpdate();
} catch(Exception e) {
e.printStackTrace();
}finally {
cleanUp(conn, null, ps, null);
}