利用QueryDataSet从oracle数据库取得日期型数据时候,我遇到了一些麻烦,最后发现原因在于oracle数据库驱动程序版本不同所致!
说明:oracle数据库中field字段类型为date型,它集和了日期,时间,日期时间型的数据.
1、在比较老的classes12.jar驱动包里,我们可以通过
QueryDataSet.getDate("field")得到日期
QueryDataSet.getTimestamp("field")得到带时分秒的日期
通过QueryDataSet.setDate("field",Date.valueOf("2005-05-03"))保存日期
QueryDataSet.setTimestamp("field",Timestamp.valueOf("2005-05-03 08:05:10"))保存带时分秒的日期
2、在比较老的classes12.jar驱动包里,通过上面方法存取纯日期类型的数据还可以用setDate(),getDate(),但是存取日期时间类型数据时,就会出错。
解决方法:oracle9i里面定义了新的数据类型timestamp,定义field字段类型为timestamp就可以用queryDataSet存取数据库了:
QueryDataSet.getDate("field")得到日期 ------字段类型 date型
QueryDataSet.getTimestamp("field")得到带时分秒的日期 ------字段类型 timestamp型
通过QueryDataSet.setDate("field",Date.valueOf("2005-05-03"))保存日期 ------字段类型 date型
//保存带时分秒的日期 ------字段类型 timestamp型
QueryDataSet.setTimestamp("field",Timestamp.valueOf("2005-05-03 08:05:10"))