怎么用查询得到的时间与系统当前时间进行比较并输出
如何用查询得到的时间与系统当前时间进行比较并输出
我先查出表内符合要求的数据,得到DQSJ
select MC,ZJBH,XZQ,SLRQ,SFHMD,DQSJ
from USER_ZGINFO
得到的数据如下
MC ZJBH XZQ SLRQ SFHMD DQSJ
黑牛 110 湖南 2012-12-20 2012-12-02 12:00:00
。。。
然后在用到期时间与系统当前时间进行比较,如果DQSJ为空或者DQSJ与系统当前时间相隔天数大于45天 显示“正常”;如果DQSJ不为空且与系统当前时间相隔天数在0-45天内,显示“快到期”;如果DQSJ不为空且在系统当前时间之前或者等于系统当前时间,显示“到期”;怎么写sql语句
要的效果
MC ZJBH XZQ SLRQ SFHMD DQSJ DQZT
黑牛 110 湖南 2012-12-20 2012-12-02 12:00:00 正常
------解决方案--------------------
我先查出表内符合要求的数据,得到DQSJ
select MC,ZJBH,XZQ,SLRQ,SFHMD,DQSJ
from USER_ZGINFO
得到的数据如下
MC ZJBH XZQ SLRQ SFHMD DQSJ
黑牛 110 湖南 2012-12-20 2012-12-02 12:00:00
。。。
然后在用到期时间与系统当前时间进行比较,如果DQSJ为空或者DQSJ与系统当前时间相隔天数大于45天 显示“正常”;如果DQSJ不为空且与系统当前时间相隔天数在0-45天内,显示“快到期”;如果DQSJ不为空且在系统当前时间之前或者等于系统当前时间,显示“到期”;怎么写sql语句
要的效果
MC ZJBH XZQ SLRQ SFHMD DQSJ DQZT
黑牛 110 湖南 2012-12-20 2012-12-02 12:00:00 正常
------解决方案--------------------
- SQL code
select MC,ZJBH,XZQ,SLRQ,SFHMD,DQSJ, case when DQSJ is null or DQSJ-sysdate>45 then '正常' when DQSJ-sysdate>0 and DQSJ-sysdate<=45 then '快到期' when DQSJ-sysdate<=0 then '到期' end DQZT from USER_ZGINFO
------解决方案--------------------
- SQL code
create table t1(d_date date); insert into t1 values (to_date('2012-06-01 12:00:00','yyyy-mm-dd hh24:mi:ss')); insert into t1 values (to_date('2012-03-01 12:00:00','yyyy-mm-dd hh24:mi:ss')); insert into t1 values (to_date('2012-04-01 12:00:00','yyyy-mm-dd hh24:mi:ss')); insert into t1 values (to_date('2012-05-01 12:00:00','yyyy-mm-dd hh24:mi:ss')); select d_date, case when d_date-sysdate>45 then '正常' when d_date-sysdate<=45 and d_date-sysdate>0 then '快到期' when d_date-sysdate<=0 then '到期' end d_state from t1 d_date d_state --------------------------------------------- 1 2012/6/1 12:00:00 正常 2 2012/3/1 12:00:00 到期 3 2012/4/1 12:00:00 快到期 4 2012/5/1 12:00:00 快到期