当前位置: 代码迷 >> J2SE >> Java中怎么把非系统时间HH:mm或yyyy-MM-dd HH:mm插入到SQL中
  详细解决方案

Java中怎么把非系统时间HH:mm或yyyy-MM-dd HH:mm插入到SQL中

热度:60   发布时间:2016-04-24 14:07:39.0
Java中如何把非系统时间HH:mm或yyyy-MM-dd HH:mm插入到SQL中
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.
  相关解决方案