Извлечение общего количества секунд из типа данных интервала-

При вычитании timestampsвозвращаемое значение имеет тип данных interval-. Есть ли элегантный способ преобразовать это значение в общее число (милли/микро)секунд в интервале, т.е. целое число.

Следующее сработает, но не очень красиво:

select abs( extract( second from interval_difference ) 
          + extract( minute from interval_difference ) * 60 
          + extract( hour from interval_difference ) * 60 * 60 
          + extract( day from interval_difference ) * 60 * 60 * 24
            )
  from ( select systimestamp - (systimestamp - 1) as interval_difference
           from dual )

Есть ли более элегантный метод в SQL или PL/SQL?

30
задан Nick Krasnov 24 August 2013 в 00:36
поделиться