2009-08-01   这个是第一个日期
今天  这个是第二个日期
第二个日期 距离第一个日期由39天 这个用SQL怎么得出啊 是ORCL的 不能用自定义函数!~ 只能有SQL书写和系统函数进行做!~ 有没有什么办法可以实现啊

解决方案 »

  1.   

    datediff(day,第一个日期,第二个日期)
      

  2.   

    select datediff(mm,'2009-08-01',getdate())
      

  3.   

    select datediff(dd,'2009-08-01',getdate())
    /*-----------
    39(1 行受影响)*/
      

  4.   

    select cast(getdate()-'2009-08-01' as int)
      

  5.   

    select datediff(dd,'2009-08-01',getdate())
      

  6.   

    select datediff(yy,'第一个时间','第二个时间')--相差几年 select datediff(mm,'第一个时间','第二个时间')--相差几月 select datediff(dd,'第一个时间','第二个时间')--相差几天 
      

  7.   

    select datediff(DAY,'2009-08-01',GETDATE())
        --日期差值计算函数
        --DAY得到相差的天数!第二参数为起止日期,第三参数为终止日期
        
        
        
    select datediff(year,'2008-08-01',GETDATE()) as 相差年,
           datediff(quarter,'2009-01-01',GETDATE()) as 相差季度,
           datediff(month,'2009-08-01',GETDATE()) as 相差月份,
           datediff(DAY,'2009-08-01',GETDATE()) as 相差天数,
           datediff(week,'2009-08-01',GETDATE()) as 相差周数
    相差年 相差季度 相差月份 相差天数 相差周数
    1 2 1 39 6--除此以外还可以得到时,分,秒,秒,毫秒(精度3%)
      

  8.   


    select cast(getdate()-'2009-08-01' as int)
    40
    select datediff(dd,'2009-08-01',getdate())
    39
      

  9.   

    PL/sql  上怎么不能用 ,datediff不是ORCL的函数吗
      

  10.   


    oracle不知道sql是datediff()
    学习
      

  11.   

    只晓得SQL里的datediff(dd,'2009-08-01',getdate()) 
    ORACLE 没有学  
    trunc(to_date( getdate(), 'yyyy-mm-dd '), 'dd ')-trunc(to_date( '2009-08-01 ', 'yyyy-mm-dd '), 'dd ')
      

  12.   

    ORCLE是没有getdate()的    
      

  13.   

    SQL> select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual;
    TO_CHAR(SYSDATE,'YY
    -------------------
    20030327 4 18:16:09
    SQL> select to_char(sysdate,'W') from dual;
    T
    -
    4    2:取得当前日期是一个星期中的第几天,注意星期日是第一天  
     
     SQL> select sysdate,to_char(sysdate,'D') from dual;
    SYSDATE T
    --------- -
    27-MAR-03 5  
      类似:  
     
     select to_char(sysdate,'yyyy') from dual; --年
    select to_char(sysdate,'Q' from dual; --季
    select to_char(sysdate,'mm') from dual; --月
    select to_char(sysdate,'dd') from dual; --日
    ddd 年中的第几天
    WW 年中的第几个星期
    W 该月中第几个星期
    D 周中的星期几
    hh 小时(12)
    hh24 小时(24)
    Mi 分
    ss 秒  
       3:取当前日期是星期几中文显示:  
     
     SQL> select to_char(sysdate,'day') from dual;
    TO_CHAR(SYSDATE,'DAY')
    ----------------------
    星期四  
      4:如果一个表在一个date类型的字段上面建立了索引,如何使用  
     
     alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'  
      5: 得到当前的日期  
     
     select sysdate from dual; 
      6: 得到当天凌晨0点0分0秒的日期  
     
     select trunc(sysdate) from dual;
    -- 得到这天的最后一秒
    select trunc(sysdate) + 0.99999 from dual;
    -- 得到小时的具体数值
    select trunc(sysdate) + 1/24 from dual;
    select trunc(sysdate) + 7/24 from dual;  
      7.得到明天凌晨0点0分0秒的日期  
     
     select trunc(sysdate+1) from dual;
    select trunc(sysdate)+1 from dual; 
      8: 本月一日的日期  
     
     select trunc(sysdate,'mm') from dual;  
      9:得到下月一日的日期  
     
     select trunc(add_months(sysdate,1),'mm') from dual;  
      10:返回当前月的最后一天?  
     
     select last_day(sysdate) from dual;
    select last_day(trunc(sysdate)) from dual;
    select trunc(last_day(sysdate)) from dual;
    select trunc(add_months(sysdate,1),'mm') - 1 from dual;  
      11: 得到一年的每一天  
     
     select trunc(sysdate,'yyyy')+ rn -1 date0
    from
    (select rownum rn from all_objects
    where rownum<366); 
      12:今天是今年的第N天  
     
     SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;  
      13:如何在给现有的日期加上2年  
     
     select add_months(sysdate,24) from dual;  
      14:判断某一日子所在年分是否为润年  
     
     select decode(to_char(last_day(trunc(sysdate,'y')+31),'dd'),'29','闰年','平年') 
    from dual;  
      15:判断两年后是否为润年  
     
     select decode(to_char(last_day(trunc(add_months(sysdate,24),'y')+31),
    'dd'),'29','闰年','平年') from dual; 
      16:得到日期的季度  
     
     select ceil(to_number(to_char(sysdate,'mm'))/3) from dual;
    select to_char(sysdate, 'Q') from dual;  
      

  14.   

    select datepart(day,getdate())
    select datepart(day,'2009-8-31')
      

  15.   

    datediff(day,第一个日期,第二个日期)
      

  16.   

    select   to_date('2009-09-01','yyyy-mm-dd')   -   to_date('2009-08-01','yyyy-mm-dd')   d   from   so_sale
      

  17.   

    一句话就可以得到
    不过这样得到的时间差把小时也算上了,如果As Int的话会四舍五入,楼主看情况选择吧,我给你写的保留了2为小数。
    select cast(sysdate-to_date('2009-08-01','yyyy-mm-dd') As decimal(10,2)) from dual