2011-11-09 101 views
0
declare 
    v_date date; 

    CURSOR abc 
    is 
     select a_date 
     from abc 
     where part_id ='E00000001'; 
begin 
    open abc; 
    fetch abc into v_date; 
    close abc; 

    dbms_output.put_line('date is '||v_date); 
end; 
/

这里我的约会对象是被取为'31 /2099分之1223:59:59' ,现在的问题是,当我使用游标提取到v_date这个公司来了... .date是31/DEC/99日期格式错误

可能是什么问题

我使用的Oracle RDBMS作为

+0

究竟是什么列类型是'a_date'? – Yahia

+0

它的日期数据类型 – gaurav

+0

好的 - 请参阅下面的答案... – Yahia

回答

1

我看到一件令你感到困扰的事情 - abc是表格和光标的名字......这是不好的做法恕我直言。

至于日期格式问题尝试

dbms_output.put_line('date is '||TO_CHAR (v_date, 'DD/MM/YYYY HH24:MI:SS')); 

您所看到的输出是最有可能的一些DB /会话级NLS设置的关于该转换DATEVARCHAR2时使用的日期格式结果。我的代码使用明确的日期格式独立于该设置工作(这不是理想的,因为它可能会在需要本地化/全球化的情况下造成问题!)。

+0

Yahia:对于abc名称,我刚刚准备了一个poc代码来显示,它不是实际的代码。在实际的代码中,我将日期提取到记录中光标。所以在选择我们需要做一些操作获取 – gaurav

+0

@gaurav做了我的答案代码显示正确的日期? – Yahia

+0

是的,我得到了正确的答案..谢谢 – gaurav