Ошибка формата даты - PullRequest
       8

Ошибка формата даты

0 голосов
/ 09 ноября 2011
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 Ответ

1 голос
/ 09 ноября 2011

Я вижу одну вещь, которая беспокоит меня вашим кодом - abc - это имя таблицы и курсора ... это плохая практика ИМХО.

Что касается проблемы формата даты, попробуйте

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

Вывод, который вы видите, скорее всего, является результатом некоторой настройки NLS на уровне дБ / сеанса в отношении формата даты, который используется при преобразовании DATE в VARCHAR2.Мой код использует явный формат даты для работы независимо от этого параметра (который НЕ идеален, поскольку это может сделать его проблематичным в ситуациях, когда необходима локализация / глобализация!).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...