Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1
  • 2

ТЕМА:

Oracle. Как преобразовать дату в число 12 года 9 мес. назад #2405

Как в PL/SQL преобразовать дату в число? Имеется ввиду не разложение на дд.мм.гг , а полное значение
например '1 окт 2002 12:00:00' это 37530.5

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Как преобразовать дату в число 12 года 9 мес. назад #2406

для TO_CHAR(<date>) есть маска
J - Julian day; the number of days since January 1, 4712
BC. Number specified with ’J’ must be integers.
и для времени
SSSSS - Seconds past midnight (0-86399).

В этом случае дата будет таким числом:
select to_char(to_date('01.10.2002 12:00:00','dd.mm.yyyy hh24:mi:ss'),'J.SSSSS') from dual
SQLWKS> select to_char(to_date('01.10.2002 12:00:00','dd.mm.yyyy hh24:mi:ss'),'J.SSSSS') from dual
2>
TO_CHAR(TO_DA
2452549.43200
Выбрана 1 строка.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Как преобразовать дату в число 12 года 9 мес. назад #2407

тогда не понятно как кодируется время
ведь по идее 12:00 это 0.5 а здесь 0.43200
они же утверждают, что тип date полностью совпадает с другими форматами , где 0 это 1 янв 1900

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Как преобразовать дату в число 12 года 9 мес. назад #2408

так а что не понятно, в дне 86400 секунд, а 12 часов, это соответственно 43200, можешь конечно раздельно брать дни 'j' и время 'sssss', которое будешь делить на 0,864, а потом складывать, но какой в этом смысл, после этого ты не сможешь сделать обратной операции, преобразования числа к дате, надо будет разделять целую и дробную часть, дробную домножать на 0,864, а потом округлять до не пойми какого знака...
смысл?
обратно to_date(num,'j.sssss')

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Как преобразовать дату в число 12 года 9 мес. назад #2409

Только непонятно зачем тебе это нужно. Ведь Oracle хранит дату именно в числовом формате, как я понимаю.
Какой смысл конвертить дату в число, а потом загонять её в таблицу в NUMERIC?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Как преобразовать дату в число 12 года 9 мес. назад #2410

я не собираюсь это записывать в таблицу :)
просто внутри пакета необходима некоторая обработка, а Oracle не позволяет делать с типом date ничего , кроме сложения и вычитания... а задачу целиком формулировать долго

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
Время создания страницы: 0.333 секунд