में दिए गए प्रारूप में समय अंतर को परिवर्तित करना मैं EVENT_DATE_B - EVENT_DATE_A
कैसे परिवर्तित करूं जो HH:MM
प्रारूप के साथ स्ट्रिंग करने के लिए कई दिन हैं?ओरेकल
ओरेकल
उत्तर
दिनांकों हैं समय भाग में केवल अलग आप दूसरे के लिए अंतराल दिन का उपयोग कर सकते हैं। उदाहरण के लिए:
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
select 24 * (EVENT_DATE_B - EVENT_DATE_A) || ':' || '00'
from your_table
एक और दृष्टिकोण (एक क्वेरी अलग अलग दिनों पर हो सकता है):
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
+1 बेशक। किसी कारण से मैंने 'NumToDSInterval' के बारे में सोचा नहीं था :) –
मुझे लगता है कि आपको दिनांक 1 और दिनांक 2 के बीच की संख्या जानने की आवश्यकता है, फिर दिनांक 2 से इस अंतर को घटाएं और अंतिम तिथि को अपने प्रारूप में रूपांतरित करें। कॉपी/पेस्ट और आउटपुट देखें:
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
)
/
'EVENT_DATE_B - EVENT_DATE_A' एक पूर्णांक – turbanoff
ऐसा ही कुछ के लिए अच्छा नहीं है नहीं हो सकता है' का चयन 24 * (TO_DATE ('25 .12.12 15:37:32 ',' डीडी.एमएम.वाईवाई एचएच 24: एमआई: एसएस ') - to_date ('25.12.12 12:45:45', 'डीडी.एमएम.वायवाई एचएच 24: एमआई: एसएस') || || ':' || '00' दोहरी से – lexeme