熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracletimestamp類型增加值的問題

2013-11-13 15:51:42  來源: Oracle 

  在工作中我碰到這樣一個問題session表需要用到timestamp的字段在進行timestamp字段更新時出現了為題比如需要對session的有效期增加小時

  采用 systimestamp + / 會丟失秒後的精度感覺增加之後就變成了date型的樣子經過研究發現oracle 有個函數叫NUMTODSINTERVAL 可以解決這個問題下面兩個例子說明如何使用這個函數

  增加一小時

  SELECT to_char(systimestamp + NUMTODSINTERVAL(hour)yyyymmdd HH:mi:ss:ff) to_char(systimestampyyyymmdd HH:mi:ss:ff) FROM dual;

  增加一分鐘

  SELECT to_char(systimestamp + NUMTODSINTERVAL(minut)yyyymmdd HH:mi:ss:ff) to_char(systimestampyyyymmdd HH: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 VARCHAR NCHAR or NVARCHAR 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 函數了


From:http://tw.wingwit.com/Article/program/Oracle/201311/17416.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.