DateTime из Oracle

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

DateTime из Oracle

Сообщение Gameus_ »

Всем доброго дня.
Тема скорее всего стара, но поиском не нашел :( Подскажите плиз, как из оракла вытащить дату из поля типа DateTime. Например KatParty.createdatetime

Пока получилось что-то вроде

Код: Выделить всё

select to_date(to_number(substr(t.fcreatedatetime,7,2),'xx')||'.'||to_number(substr(t.fcreatedatetime,5,2),'xx')||'.'||to_number(substr(t.fcreatedatetime,2,3),'xxxx'),'dd.mm.yyyy') fromkatparty t where t.fcreatedatetime <>'8000000000000000';
но может есть более простой вариант?
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: DateTime из Oracle

Сообщение RAJAH »

Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Re: DateTime из Oracle

Сообщение Gameus_ »

При использовании TO_ORADATE валится с ошибкой ORA-07122: неверное число (в моем случае t.fcreatedatetime равно '84BC020311170000'), отсюда и новая тема...
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: DateTime из Oracle

Сообщение RAJAH »

Gameus_ писал(а):При использовании TO_ORADATE валится с ошибкой ORA-07122: неверное число (в моем случае t.fcreatedatetime равно '84BC020311170000')
Я, конечно, не специалист в Oracle, но, вроде, TO_ORADATE ожидает INTEGER в качестве аргумента.
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Re: DateTime из Oracle

Сообщение Gameus_ »

RAJAH писал(а):
Gameus_ писал(а):При использовании TO_ORADATE валится с ошибкой ORA-07122: неверное число (в моем случае t.fcreatedatetime равно '84BC020311170000')
Я, конечно, не специалист в Oracle, но, вроде, TO_ORADATE ожидает INTEGER в качестве аргумента.
В базе хранятся в виде 84BC020311170000 и тому подобное :) :) (лезу по дб линку)
Муть какая-то в общем :)
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: DateTime из Oracle

Сообщение RAJAH »

84BC020311170000 - это не строка. Это 9564521920822968320 в 16-ричной системе счисления.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: DateTime из Oracle

Сообщение m0p3e »

Только имейте ввиду, что to_oradate не имеет защиты от нулевого значения.
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Re: DateTime из Oracle

Сообщение Gameus_ »

m0p3e писал(а):Только имейте ввиду, что to_oradate не имеет защиты от нулевого значения.
Аналог to_oradate у меня есть уже, переделанный под обработку нулевых :) но вот кушать datetime он отказался :( ругался на неверное числовое значение.


В общем решилось все при помощи TO_ORADATETIME :)

Всем спасибо большое за потраченное время!
Ответить