Oracletimestamp类型增加值的问题Oracle认证考试

文章作者 100test 发表时间 2009:10:14 23:37:31
来源 100Test.Com百考试题网


"libai">   在工作中我碰到这样一个问题,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 函数了。

相关文章


Excel数据通过plsql导入到OracleOracle认证考试
Oracle表空间设计理念Oracle认证考试
oracle认证辅导:oracle批量插入测试数据Oracle认证考试
Oracle删除后 重新安装的方法Oracle认证考试
Oracletimestamp类型增加值的问题Oracle认证考试
Oracle随机抽取记录的方法Oracle认证考试
Oracle数据库中不同恢复的特性Oracle认证考试
实用的Oracle技术面试问题Oracle认证考试
OracleSQL*plus常用的命令和函数Oracle认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛