首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

新手 ! oracle日期有关问题 ~

2013-01-08 
新手求救! oracle日期问题 ~~~select v.categoryid,v.workcategoryid,sum(case when to_number(sysdate)

新手求救 ! oracle日期问题 ~~~
select v.categoryid,
       v.workcategoryid,
       sum(case when to_number(sysdate) > to_number(to_date(v.servicedate,'yyyy-MM-dd')) and to_number(sysdate) < to_number(add_months(to_date(v.servicedate,'yyyy-MM-dd'),v.cycletime/30)) and to_number((add_months(to_date(v.servicedate,'yyyy-MM-dd'),v.cycletime/30) - sysdate)) >to_number(add_months(sysdate,v.warncount/30)) then 1 else 0end) count1, 
       sum(case when to_number(add_months(to_date(v.servicedate,'yyyy-MM-dd'),v.cycletime/30) - sysdate) >= to_number(add_months(sysdate,v.warncount/30)) and to_number(add_months(to_date(v.servicedate,'yyyy-MM-dd'),v.cycletime/30) - sysdate) < to_number(add_months(to_date(v.servicedate,'yyyy-MM-dd'),v.cycletime/30)) then 1 else 0 end) count2,
       sum(case when sysdate > add_months(to_date(v.servicedate,'yyyy-MM-dd'),v.cycletime/30) or to_date(to_date(v.servicedate,'yyyy-MM-dd')) =to_date(null) then 1 else 0 end) count3, count(v.id) allcount
  from (select rownum rownumber,后面的就不写了  主要就是上面的日期大小,怎么写,v.warncount和v.cycletime都是number型  单位天  求大侠帮忙啊  我还没转正!!!!其实就是一个上次维修日期v.servicedate,  预期维修日期(v.servicedate+周期(v.cycletime)),周期:v.cycletime,  提醒日期v.warncount之间的问题,在线等了~!
[解决办法]
日期如果是date 类型可以直接比较,如果都是字符也可以直接比较。
如果一个是字符型另一个是date型
则将一个转换成与另一个相同类型的再比较
select to_date('2012-11-09 09:17:17','yyyy-mm-dd hh24:mi:ss') from dual;
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
[解决办法]

SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL

热点排行