oracle10g获取Date类型字段无时分秒解决办法!
2017-03-14 11:09
183 查看
一般的数据库中,DATE字段仅仅表示日期,不包括日期信息,而Oracle数据库中的DATE数据类型是包括日期、时间的,对于不同的Oracle jdbc驱动版本,对于该问题的处理都有些区别。
最近使用 ORACLE 10G,时间字段因需求,设为了DATE类型,发现hibernate用native SQL 查询或ibatis获取result.getObject()的时候显示不了时分秒,原来是JDBC驱动自动把date映射为 Java.sql.date,故截断了时分秒信息,如果你使用9i或者11g 的驱动程序,就没有该问题,但是Oracle10g的JDBC驱动,你会发现没有时分秒 ,在Oracle9.2之后,引入了内置数据类型TIMESTAMP。之所以引入它,是因为内置数据类型DATE的最小单位为秒;DATE的主要问题是它粒度不能足够区别出两个事件哪个先发生。9.2版本后ORACLE在DATE数据类型上扩展出来了TIMESTAMP数据类型,它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒(纳秒Nanoseconds级的)的信息。如果你想把DATE类型转换成TIMESTAMP类型,就使用CAST函数。 也正是从oracle 9.2开始,内置数据类型DATE和TIMESTAMP在使用9i的JDBC驱动做查询时,DATE被映射为java.sql.Date,TIMESTAMP被映射为java.sql.Timestamp。 从Oracle11开始,其JDBC驱动程序又重新开始回归为将内置类型DATE映射为java.sql.Timestamp(正如9.2之前的那样)。
所以,时分秒精度的丢失与hibernate无关,是oracle jdbc驱动的问题。
SO:
解决方法有以下两个:
1、换jdbc驱动
2、数据库中把data转换成timestamp类型
最近使用 ORACLE 10G,时间字段因需求,设为了DATE类型,发现hibernate用native SQL 查询或ibatis获取result.getObject()的时候显示不了时分秒,原来是JDBC驱动自动把date映射为 Java.sql.date,故截断了时分秒信息,如果你使用9i或者11g 的驱动程序,就没有该问题,但是Oracle10g的JDBC驱动,你会发现没有时分秒 ,在Oracle9.2之后,引入了内置数据类型TIMESTAMP。之所以引入它,是因为内置数据类型DATE的最小单位为秒;DATE的主要问题是它粒度不能足够区别出两个事件哪个先发生。9.2版本后ORACLE在DATE数据类型上扩展出来了TIMESTAMP数据类型,它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒(纳秒Nanoseconds级的)的信息。如果你想把DATE类型转换成TIMESTAMP类型,就使用CAST函数。 也正是从oracle 9.2开始,内置数据类型DATE和TIMESTAMP在使用9i的JDBC驱动做查询时,DATE被映射为java.sql.Date,TIMESTAMP被映射为java.sql.Timestamp。 从Oracle11开始,其JDBC驱动程序又重新开始回归为将内置类型DATE映射为java.sql.Timestamp(正如9.2之前的那样)。
所以,时分秒精度的丢失与hibernate无关,是oracle jdbc驱动的问题。
SO:
解决方法有以下两个:
1、换jdbc驱动
2、数据库中把data转换成timestamp类型
相关文章推荐
- oracle10g获取Date类型字段无时分秒解决办法!
- java 数据库查询Date类型字段 没有了时分秒 全为 00 的解决办法
- java 数据库查询Date类型字段 没有了时分秒 全为 00 的解决办法
- oracle获取Date类型字段无时分秒Data和Timestamp比较
- java 数据库查询Date类型字段 没有了时分秒 全为 00 的解决办法
- java 数据库查询Date类型字段 没有了时分秒 全为 00 的解决办法
- Oracle Date类型字段使用Hibernate插入后没有时分秒的解决
- 存入数据库的Date类型只有年月日,没有时分秒的原因和解决办法
- J2EE项目中用使用Date类型不显示时分秒的解决方法
- 织梦(dedecms)自定义表单,“时间类型”字段显示为数字的解决办法
- php date()获取的时间不对解决办法
- Oracle10g JDBC ojdbc14 DATE类型Spring查询时分秒问题
- hibernate 数据库类型 date没有时分秒解决
- JSON(3):Java的Date类型转换为符合json语法的字符串遇到的问题及其解决办法
- Date类获取日期的方法失效的解决办法
- J2EE项目中用使用Date类型不显示时分秒的解决方法
- PHP date("Y-m-d H:i:s");获取当前时间 差8小时解决办法
- 向ACCESS中的"时间/日期"字段中插入DateTime.Now时出现“标准表达式中数据类型不匹配。”错误的解决办法
- NHibernate中text类型字段太长时被截断解决办法
- 向ACCESS中的"时间/日期"字段中插入DateTime.Now时出现“标准表达式中数据类型不匹配。”错误的解决办法