Страница 1 из 1
DateTime из Oracle
Добавлено: 31 мар 2015, 13:09
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';
но может есть более простой вариант?
Re: DateTime из Oracle
Добавлено: 31 мар 2015, 13:27
RAJAH
Re: DateTime из Oracle
Добавлено: 31 мар 2015, 13:53
Gameus_
При использовании TO_ORADATE валится с ошибкой ORA-07122: неверное число (в моем случае t.fcreatedatetime равно '84BC020311170000'), отсюда и новая тема...
Re: DateTime из Oracle
Добавлено: 31 мар 2015, 14:05
RAJAH
Gameus_ писал(а):При использовании TO_ORADATE валится с ошибкой ORA-07122: неверное число (в моем случае t.fcreatedatetime равно '84BC020311170000')
Я, конечно, не специалист в Oracle, но, вроде, TO_ORADATE ожидает INTEGER в качестве аргумента.
Re: DateTime из Oracle
Добавлено: 31 мар 2015, 15:28
Gameus_
RAJAH писал(а):Gameus_ писал(а):При использовании TO_ORADATE валится с ошибкой ORA-07122: неверное число (в моем случае t.fcreatedatetime равно '84BC020311170000')
Я, конечно, не специалист в Oracle, но, вроде, TO_ORADATE ожидает INTEGER в качестве аргумента.
В базе хранятся в виде 84BC020311170000 и тому подобное
(лезу по дб линку)
Муть какая-то в общем
Re: DateTime из Oracle
Добавлено: 31 мар 2015, 15:34
RAJAH
84BC020311170000 - это не строка. Это 9564521920822968320 в 16-ричной системе счисления.
Re: DateTime из Oracle
Добавлено: 31 мар 2015, 15:37
m0p3e
Только имейте ввиду, что to_oradate не имеет защиты от нулевого значения.
Re: DateTime из Oracle
Добавлено: 31 мар 2015, 15:41
Gameus_
m0p3e писал(а):Только имейте ввиду, что to_oradate не имеет защиты от нулевого значения.
Аналог to_oradate у меня есть уже, переделанный под обработку нулевых
но вот кушать datetime он отказался
ругался на неверное числовое значение.
В общем решилось все при помощи TO_ORADATETIME
Всем спасибо большое за потраченное время!