EVENT_DATE_B - EVENT_DATE_A
日数をHH:MM
フォーマット付きの文字列に変換するにはどうすればよいですか?
質問する
10394 次
4 に答える
5
別のアプローチ (1 つのクエリを異なる日にすることができます):
with tt as (
select numToDsinterval((EVENT_DATE_B - EVENT_DATE_A ), 'DAY') dsint
from t)
select (extract(day from dsint)*24)+extract(hour from dsint) ||
':' ||extract(minute from dsint)
from tt
于 2012-12-25T13:54:49.977 に答える
4
日付が時間の部分だけが異なる場合は、日から秒までの間隔を使用できます。例えば:
SQL> select (to_date('25.12.12 15:37:32', 'DD.MM.YY HH24:MI:SS')
2 - to_date('25.12.12 12:45:45', 'DD.MM.YY HH24:MI:SS')) day(0) to second(0) as Time
3 from dual
4 ;
TIME
-------------
+0 02:51:47
しかし、明らかに常にそうであるとは限りません。したがって、時間のさまざまな部分を計算する長いクエリを作成できますが、次の単純な関数を使用すると思います。
SQL> create or replace function DaysToTime(p_val in number)
2 return varchar2
3 is
4 l_hours number;
5 l_minutes number;
6 l_seconds number;
7 begin
8 l_Hours := 24 * p_val;
9 l_minutes := (l_hours - trunc(l_hours)) * 60;
10 l_seconds := (l_minutes - trunc(l_minutes)) * 60;
11 return to_char(trunc(l_hours), 'fm09') ||':'||
12 to_char(trunc(l_minutes), 'fm09')||':'||
13 to_char(trunc(l_seconds), 'fm09');
14 end;
15 /
Function created
そして今、クエリは次のようになります。
SQL> select DaysToTime(to_date('25.12.12 15:37:32', 'DD.MM.YY HH24:MI:SS')
2 - to_date('25.12.12 12:45:45', 'DD.MM.YY HH24:MI:SS')) as Time
3 from dual
4 ;
TIME
----------
02:51:47
于 2012-12-25T13:34:46.810 に答える
1
select 24 * (EVENT_DATE_B - EVENT_DATE_A) || ':' || '00'
from your_table
于 2012-12-25T12:31:22.460 に答える
1
date1 と date2 の間の日数を調べてから、この差を date2 から差し引き、最終日付をフォーマットに変換する必要があると思います。コピーして貼り付け、出力を確認します。
Select date2, days_between, to_char(date2-days_between, 'mm-dd-yyyy hh24:mi:ss') end_date
From
(
Select sysdate date2
, trunc(sysdate)-to_date('20-DEC-2012') days_between --'20-DEC' is start_date
From dual
)
/
于 2012-12-26T20:55:04.823 に答える