Oracle 怎么样用decode实现(现在时间减去一固定时间如果小于24小时则为0,大于等于24小时则为1,谢谢!

解决方案 »

  1.   

    --decode不太好写..timea - timeb 为相差的日期,小于24小时应该是0大于为相差的天数..没测试 
    select decode(substr((timea-timeb),0),0,1) from dual;--这需求case when 比较好...
    select  case when (timea - timeb) > 1 then 1 else 0 end from dual;
      

  2.   

    参考:SELECT DECODE(ABS(SYSDATE - 固定的日期) >= 1, 1, 0) FROM dual;
      

  3.   

    decode 其实就是个if esle 结构
      

  4.   

    1楼的:
    select  case when (timea - timeb) > 1 then 1 else 0 end from dual;
      

  5.   

    SELECT DECODE(ABS(SYSDATE - 固定的日期) >= 1, 1, 0) FROM dual;
      

  6.   

    select case when (timea - timeb) > 1 then 1 else 0 end from dual;
      

  7.   

    如果sysdate必然大于固定的日期
    SELECT sign(SYSDATE - 固定的日期-1) FROM dual;
    如果sysdate可能小于固定的日期
    SELECT decode(sign(SYSDATE - 固定的日期-1),-1,0,sign(SYSDATE - 固定的日期-1)) FROM dual;
      

  8.   

    大于小于就用decode(sign(a - b),1,?,0,?,-1,?)