mybatis查询出oracle 时间格式数据,选择何种数据类型能够接收
问题:
1、数据库中时间的存储,有哪几种类型
2、这几种类型,对应使用mybatis查询出来,使用什么数据类型去接收
数据库中时间的存储,有哪几种类型
使用DataGrip 在oracle中创建一张表,可以看到时间存储方式可以分为以下几种:
1、DATE
Date类型,使用该类型存储的时间格式为 yyyy-MM-dd HH:mm:ss 格式
(注:存储时需要指定格式为 yyyy-MM-dd HH24:mi:ss 因为oracle 格式不区分大小写,直接存储与返回前一格式的时间数据,会导致时间格式化异常,导致显示的时间出错)
该类数据查询出来可以使用哪些Java的实体类型接受呢?
使用java.util.Date 类型接收,使用String 接受也可以
注:需要与java.sql.Date 进行区分,使用java.sql.Date接受的数据类型,使用sql.Date会丢失时分秒
如下所示:
2、VARCHAR2
使用VARCHAR2 存储的时间,本质上为字符串类型,直接使用String 接收即可,但后续使用需要对其进行转换,可以采用java.time.format.DateTimeFormatter 格式化String 格式的存储的时间,转化为LoalDateTime类型或者Date类型。
3、NUMBER
使用NUMBER类型以及存储的时间,一般存的是时间戳,时间戳有两种,分别为秒以及毫秒存储的格式
number 类型与 numeric 的区别:
numberic 类型可以存储负整数正整数,分数,浮点数
Number( p,s) Number数据类型存储一个有p位精确度的s位等级的数据
numeric是number子类型,number可以存放1E-130~10E125数字,numeric最大精度为38位
4、TIMESTAMP
DATE数据类型的主要问题是它粒度不能足够区别出两个事件哪个先发生。ORACLE已经在DATE数据类型上扩展出来了TIMESTAMP数据类型,它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒的信息
从数据库中查询出TIMESTAMP类型的数据,同样可以使用Date 类型以及String 类型接收。
参考文献:
https://www.yiibai.com/oracle/oracle-date.html
https://www.cnblogs.com/java-class/p/4742740.html
https://blog.csdn.net/Master_Shifu_/article/details/82055344
https://www.jianshu.com/p/c8d36b9c3f12
标签:存储,数据类型,Date,类型,oracle,格式 From: https://www.cnblogs.com/charler/p/17014292.html