update 表 set 时间 = 时间 +/- 天 where 条件
创新互联专注于沙洋网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供沙洋营销型网站建设,沙洋网站制作、沙洋网页设计、沙洋网站官网定制、小程序开发服务,打造沙洋网络公司原创品牌,更为您提供沙洋网站排名全网营销落地服务。
比如把时间为今天的数据提前一天就是:
update 表 set 时间 = 时间 -1 where trunc(时间) = '2017/05/12'
如果想退后1小时14分钟
那就update 表 set 时间= 时间 + 1/24+14/1440 where ....
因为一天24小时,一个小时就是1/24。没有特定格式要求,分数小数都可以
如果只想用oracle内置的函数,那么只有这个,把数字转换成interval类型,显示结果分4段,天、小时、分钟、秒。
下例把100分钟显示成1小时40分钟:
SQL select NUMTODSINTERVAL(100,'MINUTE') from dual;
NUMTODSINTERVAL(100,'MINUTE')
---------------------------------------
+000000000 01:40:00.000000000
如果不想用内置函数(因为超过24小时会自动转换成1天),可以自己写函数,算法如下
下例把100分钟显示成1小时40分钟:
SQL select floor(100/60) HOURS,mod(100,60) MINUTES from dual;
HOURS MINUTES
---------- ----------
1 40
SQL
--Interval :设置快照收集的频率,以分钟为单位。可设置的值最小为10分钟,最大为1年。如果设置该参数值为0,就表示禁用AWR特性。
--Retention :设置快照保存的时间,单位是分钟。可设置的值最小为1天,最大为100年。设置该参数值为0的话,就表示永久保留收集的快照信息。
exec dbms_workload_repository.modify_snapshot_settings (interval=10,retention =1*24*60);