substr(to_char(saletime),1,10) = '2013-11-15' 
这个不指定格式,可以吗?
这样还用不上索引呀

解决方案 »

  1.   

    刚发现 已更正了 可以正确查出数据了
    但是写到PB数据窗口里查询时 却报错 ‘无效的数字类型’ 此段代码如下
    :as_day :as_start :as_end是参数
     substr(to_char(saletime,'yyyy-mm-dd'),1,10) = :as_day ) AND  
             (saled.saletime between to_date(:as_day+' '+:as_start,'yyyy-mm-dd hh24-mi-ss') and to_date(:as_day+' '+:as_end,'yyyy-mm-dd hh24-mi-ss')))
      

  2.   

    刚发现 已更正了 可以正确查出数据了
    但是写到PB数据窗口里查询时 却报错 ‘无效的数字类型’ 此段代码如下
    :as_day :as_start :as_end是参数
     substr(to_char(saletime,'yyyy-mm-dd'),1,10) = :as_day ) AND  
             (saled.saletime between to_date(:as_day+' '+:as_start,'yyyy-mm-dd hh24-mi-ss') and to_date(:as_day+' '+:as_end,'yyyy-mm-dd hh24-mi-ss')))

    字符串拼接 ::as_day+' '+:as_start 应该为::as_day||' '||:as_start
      

  3.   

    刚发现 已更正了 可以正确查出数据了
    但是写到PB数据窗口里查询时 却报错 ‘无效的数字类型’ 此段代码如下
    :as_day :as_start :as_end是参数
     substr(to_char(saletime,'yyyy-mm-dd'),1,10) = :as_day ) AND  
             (saled.saletime between to_date(:as_day+' '+:as_start,'yyyy-mm-dd hh24-mi-ss') and to_date(:as_day+' '+:as_end,'yyyy-mm-dd hh24-mi-ss')))

    字符串拼接 ::as_day+' '+:as_start 应该为::as_day||' '||:as_start
    刚想起oracle里不能这么拼接字符串 和PB脚本搞混了 还有HH24:MI:SS也修改过了 不报错了
    数据窗口查询不出数据 执行SQL语句的话 倒是能查询出数据……
      

  4.   

    刚发现 已更正了 可以正确查出数据了
    但是写到PB数据窗口里查询时 却报错 ‘无效的数字类型’ 此段代码如下
    :as_day :as_start :as_end是参数
     substr(to_char(saletime,'yyyy-mm-dd'),1,10) = :as_day ) AND  
             (saled.saletime between to_date(:as_day+' '+:as_start,'yyyy-mm-dd hh24-mi-ss') and to_date(:as_day+' '+:as_end,'yyyy-mm-dd hh24-mi-ss')))

    字符串拼接 ::as_day+' '+:as_start 应该为::as_day||' '||:as_start
    刚想起oracle里不能这么拼接字符串 和PB脚本搞混了 还有HH24:MI:SS也修改过了 不报错了
    数据窗口查询不出数据 执行SQL语句的话 倒是能查询出数据……
    如果是这种情况,你就需要检查你参数的值的问题了。