1

2 つの列の違いを取得する必要がある状況があります。

列 1: 01-OCT-13 10:27:15
列 2: 01-OCT-13 10:28:00

上記の 2 つの列の違いを取得する必要があります。「-」演算子を使用してみましたが、出力が予期した方法ではありません。
次のような出力が必要です: 00-00-00 00:00:45

4

3 に答える 3

2

これも試して、

WITH T(DATE1, DATE2) AS
(
SELECT TO_DATE('01-OCT-13 10:27:15', 'DD-MON-YY HH24:MI:SS'),TO_DATE('01-OCT-13 10:28:00', 'DD-MON-YY HH24:MI:SS') FROM DUAL
)
SELECT floor(date2 - date1)
          || ' DAYS '
          || MOD(FLOOR ((date2 - date1) * 24), 24)
          || ' HOURS '
          || MOD (FLOOR ((date2 - date1) * 24 * 60), 60)
          || ' MINUTES '
          || MOD (FLOOR ((date2 - date1) * 24 * 60 * 60), 60)
          || ' SECS ' time_difference

FROM T;
于 2013-10-03T05:26:12.613 に答える
2

このクエリを試してみてください。ただし、テストされていません

SELECT extract(DAY
               FROM diff) days,
       extract(hour
               FROM diff) hours,
       extract(MINUTE
               FROM diff) minutes,
       extract(SECOND
               FROM diff) seconds,
       extract(YEAR
               FROM diff) years
FROM
  (SELECT (CAST (to_date(t.column1, 'yyyy-mm-dd hh:mi:ss') AS TIMESTAMP) -CAST (to_date(t.column2, 'yyyy-mm-dd hh:mi:ss') AS TIMESTAMP)) diff
   FROM tablename AS t)
于 2013-10-03T05:12:10.937 に答える
0

以下のクエリを使用して違いを見つけることができますseconds

select 24*60*60*
(to_date('01-OCT-13 10:28:00', 'yyyy-mm-dd hh24:mi:ss')-
to_date('01-OCT-13 10:27:15', 'yyyy-mm-dd hh24:mi:ss')) diff_secs
from dual;

SQL フィドル

于 2013-10-03T05:42:14.133 に答える