如何使用oracle表单插入日期

时间:2015-10-28 14:08:44

标签: oracle11g oracleforms

我使用oracle表单11g。我传递了插入数据库的To_Date(sysdate,'dd-mm-yyyy'),列的数据类型为date。但它插入22-10-0015而不是22-10-2015你能帮帮我吗?

我使用过程从按钮click.i中插入数据和oracle需要将dd-mm-yyyy格式插入到数据库中如何做到这一点?

2 个答案:

答案 0 :(得分:2)

sysdate已经是一个日期,因此为to_date()致电是没有意义的。您隐式将其转换为字符串,然后显式返回日期。隐含的步骤是使用您的Forms会话的NLS_DATE_FORMAT,这可能是症状中的DD-MM-YY,所以您真的在做:

to_date(to_char(sysdate,'dd-mm-yy'),'dd-mm-yyyy')

隐式字符串版本会将年份显示为15,如果您自己运行它;并且显式转换正确地将其视为0015而不是假设2015年。

你应该直接通过sysdate;但是如果你试图去除时间以显示午夜,你可以使用the trunc() function

trunc(sysdate)

答案 1 :(得分:0)

SYSDATE已经是DATE了。您无需使用TO_DATE将其转换为DATE。

正在发生的事情是你将SYSDATE转换为一个字符串而你正在使用YYYY掩码,它将把2000年的任何一年翻译成00年代(这就是2015年被转换为15年的原因)。如果您使用RRRR掩码,您将获得预期结果:

apply

但是,这不是一个好主意,因为它是不必要的,如果用于隐式转换为字符串的NLS_DATE_FORMAT模型不匹配,则可能会失败。