大家好: 我写了一个存储过程,有两个输入参数,分别是时间:小时和日期:年月日,存储过程中将这两个参数连接起来,
比如输入的参数是小时:13,日期20071114,连接后,得到两个日期分别为
2007111413:00:00 和 2007111413:59:59 但是将他们用to_date函数转换成date类型插入数据库的时候,数据库中两个都成了却变成了200711140:00:00,
不知怎么回事??? 存储过程代码如下
CREATE OR REPLACE PROCEDURE CMCC.STA_YYTOPERATE_TOTAL(
hour in varchar2,
riqi in varchar2
)IS begintime varchar216);
endtime varchar2(16);
sqlstr varchar2(4000);
BEGINbegintime := 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_YYTOPERATE_TOTAL; 但是,我用其他方法验证,字符串变量begintime的值的确是2007111413:00:00,
为什么用to_date(begintime, 'yyyymmdd hh24:mi:ss';)转换后就变成2007111413:00:00了呢??? 谢谢!!!
比如输入的参数是小时:13,日期20071114,连接后,得到两个日期分别为
2007111413:00:00 和 2007111413:59:59 但是将他们用to_date函数转换成date类型插入数据库的时候,数据库中两个都成了却变成了200711140:00:00,
不知怎么回事??? 存储过程代码如下
CREATE OR REPLACE PROCEDURE CMCC.STA_YYTOPERATE_TOTAL(
hour in varchar2,
riqi in varchar2
)IS begintime varchar216);
endtime varchar2(16);
sqlstr varchar2(4000);
BEGINbegintime := 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_YYTOPERATE_TOTAL; 但是,我用其他方法验证,字符串变量begintime的值的确是2007111413:00:00,
为什么用to_date(begintime, 'yyyymmdd hh24:mi:ss';)转换后就变成2007111413:00:00了呢??? 谢谢!!!
'yyyymmdd hh24:mi:ss '
-------------------------正确的日期和时间 格式间会有空格的,而你的是‘2007111413:00:00’没有空格
我想应该是这个问题,你把格式调整下再看看哦!
这个语句这样写就可以了