call SP_SUMMARY(to_date('2011/08/04 09:30:00','yyyy/mm/dd HH24:MI:SS')我在delphi程序中,调用这个sql语句,执行一个procedure,同时传递一个时间
我的procedure如下:
CREATE OR REPLACE PROCEDURE SP_SUMMARY(VAR_LOGTIME DATE DEFAULT SYSDATE)

但是我调试运行时,VAR_LOGTIME 的格式变了,不是我传进去的格式,变成了07-sep-11,这种了怎样才能使格式保持不变啊

解决方案 »

  1.   

    这只是显示问题,实际数据并不是这个样子的。你可以在你的存储过程最上面的 bengin 下面增加一句话
    execute immediate 'alter session set nls_Date_format=''yyyy-mm-dd hh24:mi:ss''';
      

  2.   

    如果非得是你写的这样的结果就execute immediate 'alter session set nls_Date_format=''yyyy/mm/dd HH24:MI:SS''';
      

  3.   

    如果非得是你写的这样的结果就execute immediate 'alter session set nls_Date_format=''yyyy/mm/dd HH24:MI:SS''';
      

  4.   

    就是。 你只要值正确就行了,至于展现格式怎么样,并没有关系 。  你要按照你的规则显示,可以用to_char函数
      

  5.   


    CREATE OR REPLACE PROCEDURE SP_SUMMARY(VAR_LOGTIME DATE DEFAULT SYSDATE)那为什么我传入一个时间参数,在procedure里面没有使用我的参数,而是使用了 default sysdate这个时间。。导致我的procedure跑的数据是错的
      

  6.   


    insert into table A
    select B.* from table B
    where B.hist >= VAR_LOGTIME -2
    and B.hist <VAR_LOGTIME 
    我procedure里面会有这样的语句,这里var_logtime,不管传入的是什么时间,他都用sysdate所以我怀疑是参数传入出了问题