PLSQL - Как вычесть время (чч: ми) по метке времени - PullRequest
1 голос
/ 14 января 2012

У меня есть два поля с типом отметок времени, time_in и time_out.
Например:
time_out = 02-MAY-11 07.30.00.000000 PM и
time_in = 02-MAY-11 07.57.00.000000 AM

Я хочу получить разные ЧАСЫ из этого поля отметок времени.
Как это сделать,??

Ответы [ 2 ]

1 голос
/ 14 января 2012

Это то, что вы ищете? Извлечение также работает с интервалами (что дает вам прямое вычитание между двумя временными метками).

create table times (time_in timestamp, time_out timestamp);
insert into times values(to_timestamp('02-MAY-11 07.57.00.000000 AM'), to_timestamp('02-MAY-11 07.30.00.000000 PM'));
select extract(hour from(time_out-time_in))||':'||extract(minute from(time_out-time_in)) from times;

EXTRACT(HOURFROM(TIME_OUT-TIME_IN))||':'||EXTRACT(MINUTEFROM(TIME_OUT-TIME_IN))   
--------------------------------------------------------------------------------- 
11:33                                                                             
0 голосов
/ 14 января 2012

См. Функцию Извлечение

Сверху:

SQL>
SQL>
SQL> --EXTRACT(): get the hour, minute, and second from a TIMESTAMP returned by TO_TIMESTAMP():
SQL>
SQL> SELECT
  2    EXTRACT(HOUR FROM TO_TIMESTAMP('01-JAN-2005 19:15:26',
  3      'DD-MON-YYYY HH24:MI:SS')) AS HOUR,
  4    EXTRACT(MINUTE FROM TO_TIMESTAMP('01-JAN-2005 19:15:26',
  5      'DD-MON-YYYY HH24:MI:SS')) AS MINUTE,
  6    EXTRACT(SECOND FROM TO_TIMESTAMP('01-JAN-2005 19:15:26',
  7      'DD-MON-YYYY HH24:MI:SS')) AS SECOND
  8  FROM dual;

      HOUR     MINUTE     SECOND
---------- ---------- ----------
        19         15         26

SQL>
...