日期格式错误

时间:2011-11-09 08:02:03

标签: sql date oracle10g

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 / 12/2099 23:59:59',现在的问题是,当我使用光标将其取入v_date时它的到来......日期是31 / DEC / 99

     
    

可能是什么问题

  

我使用oracle作为RDBMS

1 个答案:

答案 0 :(得分:1)

我发现有一件事困扰着我的代码 - abc是表格和光标的名称......这是不好的做法恕我直言。

关于日期格式问题,请尝试

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

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