oracle中date类型的解决方法
我在类中开始声明的是java.util.date类型. 可是从oracle中读取的数据赋值给这个类中的date类型的时候,出现了一个异常.异常的名字有点忘了好像是simpl*****....好像就是说数据库中读取和类中的不一样.好像是因为yyyy mm dd ssssss像是这样的一个错误.我用2种方式能解决.1是在sql语句中用to_date(yyyy-mm-dd).还有就是类中date.导入不是util而是sql中的date包.可是这个对我插入数据是date类型,还有全部数据的时候有异常出来. 不知道有谁对这样的问题有经验....
提问者采纳
2008-02-22 12:01
相互转换 1. 使用getTime()函数 这两个类都提供了getTime()函数,用于返回对应的毫秒数(long类型)。利用这个函数可以实现转换: java.util.Date utilDate = new java.util.Date(sqlDate.getTime()); // sql -> util java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); // util -> sql 2. 使用SimpleDateFormat类实现转换 SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。 SimpleDateFormat dateFormat = new SimpleDateFormate("yyyy-MM-dd HH:mm:ss"); java.util.Date utilDate = dateFormat.parse(sqlDate.toString()); 3. 直接转换 由于java.sql.Date是从java.util.Date中继承过来的,所以可以直接用: utilDate = sqlDate; 4. 另类获得日期的方法: SimpleDateFormat sy=new SimpleDateFormat("yyyy"); SimpleDateFormat sm=new SimpleDateFormat("MM"); SimpleDateFormat sd=new SimpleDateFormat("dd"); String syear=sy.format(date); String smon=sm.format(date); String sday=sd.format(date); ps: java.util.Date类中的getYear()要加上1900才可得到实际值,getMonth()则要加上1
或者public static void main(String[] args)
{
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
try
{
Date today = df.parse("20/12/2009");
System.out.println("Today = " + df.format(today));
} catch (ParseException e)
{
e.printStackTrace();
}
}
但我用了各种方法 与setdate总是冲突 我怀疑可能之前的写错了 但也找不到改的 后来发现个简单的方法
:::::::::
首先从页面中获得string类型的时间字段。我这里输入的是1998-9-8格式。
String birth = request.getParameter("birth");
然后存入数据库的方法写法如下:
String sql="insert into UHMS_YG (birth) values (to_date('"+yb.getBirthday()+"','yyyy-MM-dd')";
用到了oracle自带函数to_date()
顺利插入。