日期:2014-05-17  浏览次数:20865 次

oracle sql语句
我建立了一张表bwl 字段如下 bwlbh bwlnr txsj txsj是日期类型 
我想写一条sql语句 内容是 查询今天明天后天的数据 
我是这样写的
select * from BWL where txsj =(to_char(SYSDATE+3,'YYYY-MM-DD'))
可是这个这是能查询25号的数据 
由于刚刚初学Oracle 不知道怎么写了 
请各位指教一番 最好把sql语句写出来谢了

------解决方案--------------------
SQL code

select 
NVL(SUM(CASE WHEN  txsj =(to_char(SYSDATE-1,'YYYY-MM-DD')) 
                     THEN
                    1
                   ELSE
                    0
                 END),
             0) yesterday, --昨天
             NVL(SUM(CASE WHEN  txsj =(to_char(SYSDATE,'YYYY-MM-DD')) 
                     THEN
                    1
                   ELSE
                    0
                 END),
             0) today, --今天
             NVL(SUM(CASE WHEN  txsj =(to_char(SYSDATE+1,'YYYY-MM-DD')) 
                     THEN
                    1
                   ELSE
                    0
                 END),
             0) tomorrow,--明天
  from BWL;

------解决方案--------------------
SQL code

select * 
from BWL 
where txsj between to_char(sysdate-1,'yyyy-mm-dd') and to_char(sysdate+1,'yyyy-mm-dd')

------解决方案--------------------
3,4应该满足你需求,我就不献丑了~~