大家好:   我写了一个存储过程,有两个输入参数,分别是时间:小时和日期:年月日,存储过程中将这两个参数连接起来,   
比如输入的参数是小时:13,日期20071115,连接后,得到两个日期分别为   
20071115 13:00:00 和       
20071115 13:59:59   但是将他们用to_date函数转换成date类型插入数据库的时候,数据库相应字段中的两个日期都成了却变成了
20071115 0:00:00,   
不知怎么回事???   存储过程代码如下   
CREATE OR REPLACE  PROCEDURE  STA(   
    hour  in  varchar2,   
    riqi  in  varchar2   
)IS    begintime   varchar2(17);   
   endtime     varchar2(17);   
   sqlstr      varchar2(4000);   
BEGIN begintime := statdate ¦¦ ' ' ¦¦ stathour ¦¦ ':00:00 '; 
endtime   := statdate ¦¦ ' ' ¦¦ stathour ¦¦  ':59:59 '; sqlstr := ' insert into AAA(OPE_DATE) values(' ''¦¦to_date(begintime,'yyyymmdd hh24:mi:ss') 
¦¦ ''  ')'; execute   immediate   sqlstr; END   STA;   但是,我用其他方法验证,字符串变量begintime的值的确是20071115 13:00:00,   
为什么用to_date(begintime, 'yyyymmdd hh24:mi:ss';)转换后就变成20071115 0:00:00了呢???   小弟在线等!!!!谢谢!!!

解决方案 »

  1.   

    '   ' '¦¦to_date(begintime, 'yyyymmdd   hh24:mi:ss ')   
    ¦¦   ' '     ')
    你的字段到底是date还是char阿?
      

  2.   

    数据库中的字段是date类型的,用to_date把存储过程中的varchar2类型的变量begintime中的值
    20071115 13:00:00
    转化成date类型的,插入数据库中,问题现在就是插入到数据库中的数据是
    20071115 0:00:00
      

  3.   

    sqlstr :='insert into AAA(OPE_DATE) values(to_date('''¦¦begintime¦¦''', ''yyyymmdd hh24:mi:ss'')';
      

  4.   

    sqlstr :='insert into AAA(OPE_DATE) values(to_date('''¦¦begintime¦¦''', ''yyyymmdd hh24:mi:ss''))';
      

  5.   

    ' ' '¦¦begintime¦¦ ' ' ' BEGINTIME 需要是字符串型的