Java中如何把非系统时间插入到SQL中
我现在是在C/S架构下,把考勤文本文件中的字符串(如200708131125)。
200708131125(详细表示为:2007年08月13日 11时25分)
我现在可以用Date.valueOf( "yyyy-MM-dd ") 这种格式插入到SQL中。
但是现在 HH:mm 和 yyyy-MM-dd HH:mm 格式却不知道做。每次都是提示数据格式不对。
小时:分钟(HH:mm) 或 年月日时分(yyyy-MM-dd HH:mm )
现在问题是:yyyy-MM-dd格式可以插入。但是HH:mm 和 yyyy-MM-dd HH:mm
------解决方案--------------------
to_date(?, 'yyyy-mm-dd hh24:mi:ss ')
oracle中的办法
------解决方案--------------------
帮顶
------解决方案--------------------
200708131125 转换成时间不就好了 晕,这种问题也来问
------解决方案--------------------
正确方法:
SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddHHmm ");
String time = "200708131125 ";
try {
Date date = sdf.parse(time);
} catch (ParseException e) {
e.printStackTrace();
}
------解决方案--------------------
String time= "200708131125 ";
String sql= "insert into table(time) values( "+ "to_date( ' "+time+ " ',yyyymmddhh24mi ') ";
db.executeUpdate(sql);
这样不是很直接
------解决方案--------------------
java.SQL.Date sqlDate=new java.SQL.Date(date.getTime()); //date是java.util.Date对象
Time sqlTime=new Time(date.getTime()); //java.sql.Time
String strDate=sqlDate.toString()+ " "+sqlTime.toString(); //这个就是yyyy-MM-dd HH:mm
当然 你完全可以用java.util.Date的getXXX()方法来构件一个字符串 不过好象getYear()不是从公元元年开始计算的 其他的也是要看看他们的基准日期
最好的 用Hibernate框架 可以直接存取Date对象 会方便很多
------解决方案--------------------
用zhanghaotao()的方法可以得到时间字符串对应的Date对象
再按照指定模式串构造一个SimpleDateFormat对象,调用其format(Date date)方法,将Date对象转换成想要的字符串格式
如:
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm ");
//该模式串与要转换的原始时间串对应,如下
String time = "2007-08-13 11:25 ";
Date date = sdf.parse(time);
SimpleDateFormat sdf2=new SimpleDateFormat( "yyyy-MM-dd ");
//该模式串为要将Date类型转换成的时间字符串格式
String timeStr=sdf2.format(date);
timeStr就应该为“2007-08-13”。
------解决方案--------------------
> > PreparedStatement ps = db.getPreparedStatement(sql);
> > ps.setDate(1, Date.valueOf(aa));//maff.format(aa).substring(0, 8)
> > ps.setString(2, strTime);
use ps.setTimestamp() instead of ps.setDate(),
just hava a try.
maybe it works.