получение полей даты от oracle в правильном формате с использованием Python и cx-oracle

Я извлекаю нагрузку данных из одной базы данных оракула, а затем вставляю ее в другую не связанную базу данных, которая является структурно одинаковой.

Я делаю это, делая:

select * from xxx where id = parameter 

а также

 Select COLUMN_NAME from user_tab_columns where table_name=xxx 

затем zip помещает их в словарь как table_name: данные для сборки вставки из

Проблема в том, что оно возвращает поля даты как datetime.datetime (99, 12, 31, 0, 0). Мне это нужно 31-dec-2999. Как я могу заставить его вернуть его так или мне нужно создать регулярное выражение для этого?

Я новичок во всем этом, поэтому, если мой метод кажется смешным, не стесняйтесь говорить об этом и предлагайте лучший метод

Большое спасибо Адаму

2 Solutions collect form web for “получение полей даты от oracle в правильном формате с использованием Python и cx-oracle”

cx_Oracle базы данных cx_Oracle предоставляет вам объекты datetime.datetime() . Используйте методы для этих объектов для их форматирования в строку, если требуется другой вывод.

Метод datetime.strftime() лучше всего подходит для ваших целей:

 dtobject.strftime('%d-%b-%Y') 

Демо-версия:

 >>> import datetime >>> dtobject = datetime.datetime(2999, 12, 31, 0, 0) >>> dtobject.strftime('%d-%b-%Y') '31-Dec-2999' 

Если, однако, Oracle действительно возвращает объекты с годом, установленным в 99 (не 2999 ), вам необходимо восстановить данные:

 if dtobject.year < 100: dtobject = dtobject.replace(year=dtobject.year + 2900) 

Вы можете использовать strftime .

Например:

 >>> import datetime >>> print datetime.datetime.now().strftime("%Y-%m-%d %H:%M") 2013-08-13 13:10 

В вашем случае это может сделать это:

 strftime("%d-%b-%Y") 

где:

 %b locale's abbreviated month name (eg, Jan) %d day of month (eg, 01) %Y year 
  • cx_Oracle: Как я могу получить каждую строку в качестве словаря?
  • easy_install cx_Oracle (пакет python) в Windows
  • cx_Oracle: ImportError: Ошибка загрузки DLL: это приложение не выполнено
  • Как загрузить огромный Oracle LOB с помощью cx_Oracle на ограниченную памятью систему?
  • cx_Oracle не распознает местоположение установки программного обеспечения Oracle для установки на Linux
  • Oracle 11g - запрос, похоже, кэшируется даже с подсказкой NOCACHE
  • Как я могу получить доступ к Oracle из Python?
  • Подключите python к оракулу
  • Python - лучший язык программирования в мире.