用的Oracle.比如说我想获得当前时间的30分钟以前..select sysdate-30分钟 from dual ;.........
大概就是这个意思了...望高人指点..以前有人说用substr来截取字符串.这个我到知道.但是感觉不够优雅...

解决方案 »

  1.   


    select sysdate - 1/48 from dual;
      

  2.   

    select sysdate +(或-) 你要的秒数/60/60/24 <一天=60*60*24。然后你可以把“你要的秒数/60/60/24”变成一个分数就完了。比如30分钟的话= 30*60/60/60/24 = 1楼的1/48
      

  3.   

    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做运算。
    这个用起来很灵活的,自己研究吧!我就是简单的介绍一下。
      

  4.   

    你用sysdate-1 
    这个1的单位是天 sysdate-1也就是昨天
    sysdate+1/24 也就是前一个小时
    一天24个小时嘛
    那么你要30分钟
    就是sysdate-1/24/2了SQL> select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;TO_CHAR(SYSDATE,'YY
    -------------------
    2009-11-24 13:28:14SQL> select to_char(sysdate-1/24/2,'YYYY-MM-DD HH24:MI:SS') from dual;TO_CHAR(SYSDATE-1/2
    -------------------
    2009-11-24 12:58:23SQL>
      

  5.   

    呵呵 前面说的好像有点错误
    sysdate+1/24 是下一个小时 
    sysdate-1/24 才是前一个小时 
      

  6.   

    select sysdate,sysdate-1/(24*2) from dual
      

  7.   

    select to_char(sysdate-1/48,'YYYY-MM-DD HH24:MI:SS') from dual;
      

  8.   

    oracle中时间单位默认是天
    如:--查询前一天时间
    [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