Oracle中日期问题

p_Id CHAR(20)
p_name CHAR(19)
p_date  CHAR(19)请问怎么查询出表中根据p_date指定天数前几天(就是p_date中当前日期推几天中的所有记录)的商品记录

解决方案 »

  1.   

    这个得看你p_date里存储的日期的格式才好写sql
      

  2.   

    select * from 表 where to_date(p_date,'日期格式') <= sysdate-天数
      

  3.   

    -- 例如:前5天的记录
    select t1.p_Id, t1.p_name, t1.p_date,
           count(t2.p_id)
    from tb_name t1 left join tb_name t2 
      on t1.pdate>= to_char(to_date(t2.p_date,'YYYY-MM-DD HH24:MI:SS')-5,'YYYY-MM-DD HH24:MI:SS') -- 这里按照你的日期格式去作适当修改
      and t1.pdate<=t2.p_date
    group by t1.p_Id, t1.p_name, t1.p_date;
      

  4.   

    -- 5天前到今天的所有记录
    select t1.p_id, t1.p_name, t1.p_date
    from tb_name
    where t1.p_date>=to_char(trunc(sysdate-5),'YYYY-MM-DD')
    and  t1.p_date<to_char(trunc(sysdate+1),'YYYY-MM-DD');-- 楼主的话有歧义,不知道这是不是楼主需要的!
      

  5.   

    你的p_date 有19位,里面有空格吧?
      

  6.   

    谢谢,我的问题已经解决了,p_date 19位不会看不出吧,yyyy-mm-dd HH:mi:ss 是不是19位