本帖最后由 dushen4565551 于 2012-08-07 16:37:54 编辑

解决方案 »

  1.   

    to_date('"+daystamp+"','yyyy-mm-dd')
    这句把你的daystamp转换成后面类似的格式再传入就可以了
      

  2.   

    to_date('"+daystamp+"','yyyy-mm-dd')
    -----这两个加号问题大了---去掉---
      

  3.   


    --看这个例子你可能就明白了
    SQL> set serveroutput on;
    SQL> declare
      2   v_time1 varchar2(20) :='2012-03-04 12:03:04';
      3   v_time2 varchar2(20) :='2012.03.05';
      4  begin
      5   dbms_output.put_line('v_time1:'||to_date(v_time1,'yyyy-mm-dd'));
      6   exception
      7   when others then
      8   dbms_output.put_line('v_time1:日期格式轉換出錯');
      9   dbms_output.put_line('v_time2:'||to_date(v_time2,'yyyy-mm-dd'));
     10  end;
     11  /
    v_time1:日期格式轉換出錯                                                        
    v_time2:05-3月 -12                                                              已順利完成 PL/SQL 程序.
      

  4.   

    to_date('"+daystamp+"','yyyy-mm-dd')
    -----这两个加号问题大了---去掉---
      

  5.   

    去掉加号出现如下错误:
    error C2146: syntax error : missing ';' before identifier 'daystamp' 
      

  6.   


    你好,非常感谢您的回复,按照我对这段代码的理解是将daystamp转换为05-3月 -12 这种格式吗?我尝试了一下,将04-8月-12和04-08-2012,还是没能取得数据,可能是我没准确理解这段代码的含义,麻烦你再详细说一下。
      

  7.   

    不是,轉換為2012-03-04 這種格式04-8月-12是我這邊oracle默認顯示時間格式,你要讓oracle可識別你的日期就可以了set serveroutput on;
    declare 
    v_time1 varchar2(20) :='2012-03-04 12:03:04';
    v_time2 varchar2(20) :='2012.03.05';--你的字符串應像這種或'2012-03-05'或'2012/03/05'都可以的
    begin
    dbms_output.put_line('v_time1:'||to_date(v_time1,'yyyy-mm-dd'));
    exception 
    when others then 
    dbms_output.put_line('v_time1:日期格式轉換出錯');
    dbms_output.put_line('v_time2:'||to_date(v_time2,'yyyy-mm-dd'));
    end;
    /
      

  8.   


    现在情况是这样的,我直接写具体的日期,没问题可以查询,但是加上CString 的daystamp后就是不行,我感觉也是应该转换一下格式或者进行一下处理,就是现在还没想出来,也是从没遇到过这样的问题。还是非常感谢...
      

  9.   

    --还是sql语句没写好吧,
    --c++里的sql查询字符串
    "SELECT to_char(updatetime,'yyyy-mm-dd') as updatetime, 
    sum(test_date) as test_date 
    FROM test 
    where to_char(updatetime,'yyyy-mm-dd')='"+daystamp+"'  
    group by to_char(updatetime,'yyyy-mm-dd')"
    --oracle里的sql ,动态sql
    execute immediate 'SELECT to_char(updatetime,''yyyy-mm-dd'') as updatetime, 
    sum(test_date) as test_date 
    FROM test 
    where to_char(updatetime,''yyyy-mm-dd'')='+daystamp+'  
    group by to_char(updatetime,''yyyy-mm-dd'')'
      

  10.   

    ''yyyy-mm-dd''这种写法会报错,还是没实现我要的功能。谢谢~~~
      

  11.   

    我提楼主鄙视我下
    execute immediate 'SELECT to_char(updatetime,''yyyy-mm-dd'') as updatetime, 
    sum(test_date) as test_date 
    FROM test 
    where to_char(updatetime,''yyyy-mm-dd'')='||daystamp||'  
    group by to_char(updatetime,''yyyy-mm-dd'')'
    oracle中字符串连接是||不是+
      

  12.   

    在Oracle数据库中拼接字符串是用||而不是+SELECT to_char(updatetime,'yyyy-mm-dd') as updatetime, sum(test_date) as test_date FROM test
     where to_date(to_char(updatetime,'yyyy-mm-dd'),'yyyy-mm-dd')=to_date('"||daystamp||"','yyyy-mm-dd') group by to_char(updatetime,'yyyy-mm-dd')