0

可能重复:
Oracle DBMS_SQL.EXECUTE 函数的 TO_DATE 问题

我正在使用一个函数,该函数将日期作为 varchar 输入,然后 n 将其传递给另一个过程。我可以看到在某些情况下没有插入与日期相关的过去时间。请在我的功能下方找到

iv_plsql4 :='10-AUG-2012 07:30:30';
ln_dbms_cur := DBMS_SQL.OPEN_CURSOR;
iv_plsql2 := BEGIN PKG_PRADEEP.P_INSERTDATE(to_date(iv_plsql4,'DD-MM-YYYY HH24:MI:SS'));

DBMS_OUTPUT.put_line(iv_plsql);
DBMS_SQL.PARSE(ln_dbms_cur,iv_plsql,DBMS_SQL.NATIVE);
ln_cur_execute := DBMS_SQL.EXECUTE(ln_dbms_cur);

此代码将日期插入数据库,但时间为上午 12:00

但是如果我更改下面给出的字符串 iv_plsql2 ,则日期将与 TIME 字段一起插入。

iv_plsql2 := BEGIN PKG_PRADEEP.P_INSERTDATE(to_date('10-AUG-2012 07:30:30','DD-MM-YYYY HH24:MI:SS'));

有人可以解释为什么会这样吗?

4

1 回答 1

0

PL/SQL:您的日期格式应该是 DD-MON-YYYY,而不是 DD-MM-YYYY。

Java:您在 CallableStatement 上使用 setInt 来设置日期字符串。这不可能是正确的,事实上我不确定它会如何编译。

于 2012-08-10T22:09:28.693 回答