oracle里有oracle的date类型型吗

2013年10月 Oracle大版内专家分月排行榜第二2012年3月 Oracle大版内专家分月排行榜第二
2013年9月 Oracle大版内专家分月排行榜第三2013年6月 Oracle大版内专家分月排行榜第三2012年7月 Oracle大版内专家分月排行榜第三2012年4月 Oracle大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。C#读取Oracle中DATE类型的值,数据表中为空时,怎么去读? - jhgb1457的专栏 - CSDN博客
C#读取Oracle中DATE类型的值,数据表中为空时,怎么去读?
GetOracleDateTime&&&&&&&&&与&&&&&& GetDateTime()区别:
数据表中DATE类型的字段 为空是用GetOracleDateTime&()去读取。用GetDateTime()读取时,会发生异常。
具体分析如下:
............
//链接数据库
&OracleDataReader reader = cmd.ExecuteReader();
读取DATE类型的值,赋给一个string 类型字段,
string&& str=reader.GetOracleDateTime(4).tostring();//4代表是在Oracle数据库表中的第4列
如果数据库表中 有值的话,得到时间格式是 yyyy-mm-dd& hh-mm-ss& 例如:“ 11:34:24”
这种情况就可以直接读出了。但是如果想要只要 日期,而去掉时间
做这样的转换:string& str1=DateTime.Parse(str).ToShortDateString()//----------强制转换为DateTime类型的,在选取DateTime类型
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //-----------的ToShortDateString()转换属性,就得到仅有日期了
例如:“ 11:34:24” 就 转换成了&& ”“
难点:如果Oracle中数据表中不含有日期,为空时&&&& 其返回值问题:&
& GetOracleDateTime类型GetOracleDateTime()返回的是NULL&
&而DateTime类型的GetDateTime()返回的不是NULL,所以为空是要用GetOracleDateTime()读取。
我的热门文章oracle中date类型_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
oracle中date类型
&&oracle中date类型的使用方法
你可能喜欢Oracle数据库中表的字段设置为:date类型(这里我不需要时间,因此采用了date型,如果需要时间似乎应采用timestamp类型);
模型层表对应的pojo类及hibernate映射文件中属性的类型为java.util.Date;
表现层采用处理,中相应的字段也设置为:类型;
利用MyEclipse中自带的hibernate逆向工程自动生成DAO类。
在通过以上配置调用DAO中的方法,进行以date类型属性作为查询条件进行查询时,会产生以下错误:
ORA-01858: 在要求输入数字处找到非数字字符
个人认为是由于date类型的格式问题导致的,即查询条件中的日期格式与数据库中的格式不一致。因为可以看到,由表现层传到BO层的Date对象为:“Wed Jul 28 13:09:40 CST 2010 ”,而数据库中存储的为:“”,所以考虑转换时间格式。
我采用了以下方法处理该问题:
1、在类中添加利用该属性检索实例的查询方法
public List findByFailueDate (String FailueDate) {
log.debug("finding by FailueDate");
String queryString = "from MachineMaintenance as mm where mm.failureTime = to_date('"+FailueDate+"','yyyy-mm-dd')";
List list = new ArrayList();
list = getHibernateTemplate().find(queryString);
} catch (RuntimeException re) {
log.error("find by FailueDate failed", re);
to_date为oracle中的函数,要特别注意的是如果需要时间,那么to_date中的参数应为:“yyyy-mm-dd hh-mi-ss”,因为oracle中不区分大小写的,所以分钟不应该用mm,而改为mi。
可以看到该查询方法的形参为String型而不是Date型。
2、在BO处理类中,得到界面层传入的Date对象d(println输出为:“Wed Jul 28 13:09:40 CST 2010 ”),通过SimpleDateFormat将d转化为String类型的date对象:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(d);
List list = xxxxDAO.findByFailueDate(date);
3、而后将date作为参数,调用DAO中的方法进行查询。顺利得到了想要得到的查询结果。
请各位高手多多指教啊,我是菜鸟,可能处理上走了很多弯路,不过总算是自己走通了,虽然方法笨了点儿。
vincentzhao
浏览: 21810 次
来自: 北京
学习了,
&class name=&com. ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 oracle的date类型 的文章

 

随机推荐