关于如何操作oracle数据库的date类型的数据的问题

06-07-29 yeshenghai
PreparedStatement pstm=null;

Calendar c=new GregorianCalendar(2006,10,1,10,10,10);

java.util.Date d = c.getTime();

java.sql.Date date2 = new java.sql.Date(d.getTime());

pstm=conn.prepareStatement("insert into time values(?)");

pstm.setDate(1,date2);

pstm.executeUpdate();

//以上是向oracle插入一些date类型的几行代码.但是,有一个问题,就是只能插入年月日,但是小时,分钟,秒,就没办法插进去.

//改用Timestamp这种类型的去插入,结果也同上.小时,分钟,秒还是没有办法插入?

//而且查询的时候,通过

ResultSet rs=stm.executeQuery("select start_date from time");

while(rs.next())

{

date=rs.getDate(1);

t=rs.getTimestamp(1);

g=new GregorianCalendar();

g.setTime(date);

System.out.println("小时分秒:"+g.get(Calendar.HOUR)+"\t"+g.get(Calendar.MINUTE)+"\t"+g.get(Calendar.SECOND));

System.out.println("年月日:"+g.get(Calendar.MONTH)+" \t"+g.get(Calendar.YEAR)+"\t"+g.get(Calendar.DATE));

}

以上通过查询,也只能查询到年月日,但是小时,分钟,秒,却没有办法去查询到,结果均是0,

请各位高手,指点一下.好吗?

1
Armamd
2006-08-11 10:20
如果向Oracle表中添加一条记录,日期字段可以在JAVA代码中指定为字符串,就象添加字符串字段一样,

在SQL中用oracle中的to_date()函数

1.建表

create table test_db ( t date)

2.添加记录(年月日)

insert into test_db values(to_Date('2005-06-15','yyyy-mm-dd'))

2.添加记录(年-月-日 时:分:秒) 24小时制

insert into test_db values(to_Date('2005-06-15 19:28:35','yyyy-mm-dd hh24:mi:ss'))

3.添加记录(年-月-日 时:分:秒) 12小时制

insert into test_db values(to_Date('2005-06-15 12:28:35','yyyy-mm-dd hh:mi:ss'))

如果想从数据库查询出日期格式的字段,可以在SQL中使用oracle中强大的to_char()函数把日期转换成字符串,

select To_Char(t,'yyyy') year,

To_Char(t,'mm') Month,

To_Char(t,'dd') Day,

To_Char(t,'HH24') Hour,

To_Char(t,'mi') Minute,

To_Char(t,'ss') Second from test_db

这样的在JAVA代码中可以直接取字段值了

如果嫌写SQL语名麻烦用这个

select To_Char(t,'yyyy-mm-dd hh24:mm:ss') time_ from test_db

这样直接取time_字段值即可

猜你喜欢