您当前位置:主页 > 编程技术 >
 
Oracle timestamp 类型增加值的问题,oracletimestamp
日期:2018-11-24 编辑:918Õ

Oracle timestamp 类型增加值的问题,oracletimestamp
 在工作中我碰到这样一个问题,session表需要用到timestamp的字段,在进行timestamp字段更新时出现了为题,比如需要对session的有效期增加1小时。
采用 systimestamp + 1/24 会丢失秒后的精度,感觉增加之后就变成了date型的样子。经过研究发现oracle 有个函数叫NUMTODSINTERVAL ,可以解决这个问题。下面两个例子说明如何使用这个函数

增加一小时

    SELECT to_char(systimestamp + NUMTODSINTERVAL(1,'hour'),'yyyy-mm-dd HH24:mi:ss:ff'), to_char(systimestamp,'yyyy-mm-dd HH24:mi:ss:ff') FROM dual;

增加一分钟

    SELECT to_char(systimestamp + NUMTODSINTERVAL(1,'minut'),'yyyy-mm-dd HH24:mi:ss:ff'), to_char(systimestamp,'yyyy-mm-dd HH24:mi:ss:ff') FROM dual;

 

对numtodesignterval 的原版解释如下:

NUMTODSINTERVAL converts n to an INTERVAL DAY TO SECOND literal. The argument n can be any NUMBER value or an expression that can be implicitly converted to a NUMBER value. The argument interval_unit can be of CHAR, VARCHAR2, NCHAR, or NVARCHAR2 datatype. The value for interval_unit specifies the unit of n and must resolve to one of the following string values:

  • 'DAY'
  • 'HOUR'
  • 'MINUTE'
  • 'SECOND'

从解释上看,NUMTODSINTERVAL函数还可以处理day和sesond的值增加,(处理值减少只要添加“-”在数字前就可以啦),真是很强大的函数。另外如果需要增加的是年或者月,
要选择NUMTOYMINTERVAL 函数了 

http://www.bkjia.com/oracle/1118294.htmlwww.bkjia.comtruehttp://www.bkjia.com/oracle/1118294.htmlTechArticleOracle timestamp 类型增加值的问题,oracletimestamp 在工作中我碰到这样一个问题,session表需要用到timestamp的字段,在进行timestamp字段更新时出现...

本文源自: AG环亚娱乐

上一篇:ORA-12541:TNS:无监听程序 下一篇:没有了
 
Copyright © 2005-2016 http://www.tecsquared.com AG环亚娱乐_AG直营网_环亚娱乐AG最佳线路_腾讯体育版权所有 AG环亚娱乐_AG直营网_环亚娱乐AG最佳线路_腾讯体育