30分钟:sysdate+1/48
1个小时:sysdate+1/24
一天:sysdate+1
一个星期: sysdate+7
每个星期五中午:
NEXT_DAY(TRUNC(SYSDATE),'星期五') + 12/24
一个月:add_months(sysdate,1) --可以为正负数
一年:add_months(sysdate,12)
月份加减:select to_char(add_months(sysdate-1),'yyyymm') from dual;
日期加减:select to_char(sysdate-1,'yyyymmdd') from dual;
select sysdate from dual;得到是当前时间。如果不加任何转化的话,默认的天。
select syddate+1 from dual;--后一天
select sydate-1 from dual;--前一天
select sysdate+30/60/24 from dual;--后30分钟
select sysdate-30/60/24 from dual;--前30分钟
即把时间转化为以天为单位来和sysdate做运算。
select sysdate +(或-) 你要的秒数/60/60/24 <一天=60*60*24。然后你可以把“你要的秒数/60/60/24”变成一个分数就完了。比如30分钟的话= 30*60/60/60/24 = 1楼的1/48
你用sysdate-1
这个1的单位是天 sysdate-1也就是昨天
sysdate+1/24 也就是hou一个小时
一天24个小时嘛
那么你要30分钟
就是sysdate-1/24/2了
oracle中时间单位默认是天
如:
-
SQL code
- --查询前一天时间[SYS@ora10gr1#2009-11-24/21:51:03] SQL>select sysdate-1 from dual;SYSDATE-1-------------------2009-11-23/21:51:14]--查询30分钟前的,由于1天等于60分钟*24小时=1440分钟,因此[SYS@ora10gr1#2009-11-24/21:53:40] SQL>select sysdate-30/1440 from dual;SYSDATE-30/1440-------------------2009-11-24/21:23:45
- 分享来自: http://hi.baidu.com/homappy/item/c9842274d564505f0c0a0753
- ps:突然用到 实现半个小时更新信息,,呼呼,,就找到这样的条件。