Oracle. Преобразование даты в unix timestamp

В Оракле введено немало новшеств, некоторые из них полезны, некоторые не очень, а иные просто поражают своей реализацией. Ктобы мог подумать, что timestamp в Oracle не имеет ничего общего с количеством секунд (миллисекунд) с 1 января 1970 года.

Да и функции преобразования обнаружить не удалось, а потому пришлось обратиться в всемирному разуму, который на нашей планете представлен поисковой системой Google.

Вот результаты изысканий.

Преобразование Oracle timestamp в unix timestamp

  1.  
  2. SELECT (cast(current_timestamp as date)
  3. - to_date('01-01-1970','DD-MM-YYYY')) * (86400) * 1000
  4. + (To_Char(current_timestamp, 'FF')/1000) FROM dual;
  5.  

Преобразование даты в unix timestamp

  1.  
  2. SELECT (sysdate - to_date('01-JAN-1970','DD-MON-YYYY')) * (86400) AS dt FROM dual;
  3.  

В первом запросе возвращается количество миллисекуна, а во втором - секунд.

Функции преобразования в Oracle

Читайте в блоге

Установка собственного OpenID сервера phpMyID
PHP. Преобразование таблицы в картинку. Создание информеров.
MFC. Использование HTML-интерфейса.
Полезные ссылки
Повторное экранирование кавычек в PHP

Метки: oracle

Комментарии:

Eugenius @ 30.10.2010 15:22

спасибо, полезная статейка, помогла...

Войдите на сайт, чтобы оставить комментарий