有没有这样的函数
           
    fun(startdate,currdate  ,enddate) 然后返回-1, 0
    -1 :currdate 在startdate 和enddate 之间 
    0  :不在.......
请问有没有这样的函数?
其实我要达到这样的目的,判断一个日期是否在一个时间范围之内!

解决方案 »

  1.   

    编一个吧:
    create or replace function datebetween (startdate in date,currdate in date,enddate in date)
    return number
    as
    begin
      if currdate>=startdate and currdate<=enddate then
          return -1;
      else
          return 0;
      end if;
    end;
    /
      

  2.   

    select decode(sign(currdate-startdate)*sign(enddate-currdate),1,-1,0) from table_name
      

  3.   

    select decode(sign(currdate-startdate)*sign(enddate-currdate),-1,0,-1) from table_name
      

  4.   

    没有这样的函数,但是ORALCE的日期时间函数已经相当多了。
    可以象onejune说的一样自己编一个。create or replace function fun(startdate in date,currdate in date,enddate in date)
    return number
    as
    begin
      if currdate>=startdate and currdate<=enddate then
          return -1;
      else
          return 0;
      end if;
    end fun;
      

  5.   

    select decode(sign(currdate-startdate)*sign(enddate-currdate),-1,0,-1) from table_name这个对
      

  6.   

    select decode(LEAST(GREATEST(startdate,currdate),enddate),currdate,-1,0) from 
    table_name