select *
from(
select TO_CHAR(KAG712AA,'0000')
      ,TO_CHAR(KAG712AB,'00')
      ,TO_CHAR(KAG712AC,'00')
      ,TO_CHAR(KAG712AA,'0000') || '/' || TO_CHAR(KAG712AB,'00') || '/' || TO_CHAR(KAG712AC,'00')  as dlDt 
from txzz_skag70
)
where dlDt >= '2008/10/01' 不加最外层的条件是有值得,而且现实的结果中也确实有满足外层条件的值
但是把外层条件加上的时候就什么也检索不出来了
请问哪里写的不对吗?因为这几个字段有可能为空值,所以避免用TO_DATE出错才改用的字符比较

解决方案 »

  1.   

    楼主发到ORACLE板块吧条件加了就没纪录,那显示是过滤条件过滤了啊.这个为什么问得有点.......
      

  2.   

    看了半天没明白原来是ORACLE!!!
      

  3.   

    是oracle 的有知道原因的马
      

  4.   

    dlDt 恐怕要加个函数转化成'yyyy/mm/dd'的格式
      

  5.   

    didt列 在查询的时候标准格式话一下
      

  6.   

    select * 
    from( 
    select TO_CHAR(KAG712AA,'0000') 
          ,TO_CHAR(KAG712AB,'00') 
          ,TO_CHAR(KAG712AC,'00') 
          ,TO_CHAR(KAG712AA,'0000') || '/' || TO_CHAR(KAG712AB,'00') || '/' || TO_CHAR(KAG712AC,'00')  as dlDt 
    from txzz_skag70 

    where to_char(dlDt,'YYYY/MM/DD') >= '2008/10/01' 
      

  7.   

    哥哥你来砸场子啊!到oracle去问问吧!