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

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

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

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

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

<ol><li><div>    SELECT (cast(current_timestamp as <a href="http://www.php.net/date">date</a>) </div> </li> <li><div>      - to_date('01-01-1970','DD-MM-YYYY')) * (86400) * 1000 </div> </li> <li><div>      + (To_Char(current_timestamp, 'FF')/1000) FROM dual;</div> </li></ol>

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

<ol><li><div>    SELECT (sysdate - to_date('01-JAN-1970','DD-MON-YYYY')) * (86400) AS dt FROM dual;</div> </li></ol>

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

14:43
629
Нет комментариев. Ваш будет первым!
Загрузка...