搜索
首页 电脑/网络 软件 系统软件

Oracle数据库中的时间类数据类型有哪些?

Oracle数据库中的时间类数据类型有哪些?

全部回答

2018-04-04

89 0
    在ORACLE数据库中有一类比较特别的数据类型,它就是时间类的数据类型。这中数据类型表面上看看,像字符型的数据类型,但是又不是。因为他可以像数字型的数据类型那样,进行运算。
  所以说,他是兼有数字型与字符型数据类型的特点。掌握好时间型的数据类型,是掌握ORACLE数据库设计的一个必须具备的知识。  因为在实际的数据库设计中,基本上没没张表都要用到这个数据类型。
  如信息化管理系统中的单据日期,就是一个时间型的数据类型。  下面我对ORACLE数据库中的时间型的数据类型(包括日期类的数据类型)的操作技巧做一个小结,希望对大家有所帮助。  第一个数据类型:DATE数据类型。
      在ORACLE 以前的版本中,关于日期的数据类型就这么一个。可以说,这个DATE数据类型是这个数据库中元老级别的数据类型了。这个数据类型不要光看表面是个日期数据类型,其实,在存储数据的时候,这个数据类型不光是储存现在是几几年几月几号,而会储存几点几分几秒。
  也就是说,默认情况下,利用DATE函数读取当前日期的话,其存储的格式是存储世纪(就是我们常说的公元)、年、月、日、时、分、秒。    可是在大部分时候,我们不需要这么精确的日期或者时间。
  我们只需要年、月、日就可以了。该怎么处理呢?此时,我们可以利用Trunc函数来限制。  另外还要注意两个默认的情况。如果我们在给一个日期型的字段赋值的时候,没有指定具体的时间,也就是说,我们假设字段“当前日期”为一个数据型的日期类型,我们给其赋值为2008年6月12日,则其存储在数据中不是2008年6月12日,而是2008年6月12日午夜00时00分00秒。
    也就是说,在保存时,数据库会自动把后面时间部分补上,并默认为午夜00时00分00秒。  若我们给“当前日期”字段赋值是,只给其具体的时间,而没有给定具体的日期,又会如何呢。
  如我们给“当前日期”赋值的时候,给的是08时08分08秒。那是哪一天的08时08分08秒呢?默认情况下,不是当天的这个时刻,这要注意,而是当月的第一天的这个时刻。  如我们是在6月分处理业务的时候,给予这个值的。
  我们系统存储的时候,在数据库中存储的就是2008年6月1日08时08分08秒。而不是处理业务的日期。这一点我们在数据库设计的时候要引起充分的重视。  另外,我们要以什么格式来显示时间呢?是日期放在前面还是时间放在前面呢?是用空格来进行区分还是用横杠来进行区分?是用24小时制呢还是采用12小时制?为了实现不同用户自己喜欢的格式来显示日期,数据库系统中提供了一些格式函数,如NTS_DATE_FORMATE函数或者TO_CHAR函数指定一个格式掩码来进行格式的转换。
    把系统格式转换成我们自己喜欢的格式。  第二个数据类型:INTERVAL YEAR TO MOUNTH数据类型。  如我们现在想知道,今天(2008年6月12日)离2008年8月8日还有几年几个月?在系统中就是利用这个字段来存储这个值。
  在官方资料上,对这个字段的解释是用年和月的形式存储一段时间。  这个数据类型可以用来存储两个日期/时间之间的差值,只是其精确度不是很高,只会统计两个日期之间相差多少年多少月,而没有具体到日。
   以上是我对于这个问题的解答,希望能够帮到大家。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
系统软件
程序设计
电脑装机
操作系统/系统故障
硬件
笔记本电脑
百度
互联网
反病毒
软件
软件
系统软件
多媒体软件
办公软件
网络软件
图像处理软件
系统软件
系统软件
举报
举报原因(必选):
取消确定举报