Come si converte EVENT_DATE_B - EVENT_DATE_A
che è un numero di giorni da stringere con il formato HH:MM
?Conversione della differenza di orario in un determinato formato in Oracle
risposta
Se sono date differiscono solo in parte il tempo è possibile utilizzare intervallo di giorni per secondo. Ad esempio:
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
Ma ovviamente non sarà sempre così. Così si potrebbe scrivere un lungo query per calcolare le diverse parti del tempo, ma penso che vorrei andare con questa semplice funzione:
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
E ora la domanda sarebbe:
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
Un altro approccio (uno query può essere in giorni diversi):
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 Naturalmente. Per qualche motivo non avevo pensato a 'NumToDSInterval' :) –
Penso che sia necessario trovare il numero di giorni tra data1 e data2, quindi sottrarre questa differenza dalla data2 e convertire la data finale nel formato. Copia/incolla e vedere l'output:
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
)
/
- 1. Conversione del formato orario in numerico con R
- 2. Conversione di un formato in formato 12 ore in SQL
- 3. C# DateTimeOffset formattazione in un determinato formato
- 4. Tipo di data senza orario in Oracle
- 5. Java: calcolo della differenza di fuso orario
- 6. iPhone NSDateFormatter Fuso orario di conversione
- 7. Come posso "annullare" una data in un determinato fuso orario?
- 8. ruby get Time in un determinato fuso orario
- 9. Python pytz Conversione di un timestamp (formato stringa) da un fuso orario a un altro
- 10. Conversione della stringa di data sensibile al fuso orario in UTC e ritorno in Python
- 11. Query Oracle Oracle per il formato data
- 12. Conversione Android in formato ordinale
- 13. Come visualizzare la data in un formato diverso in oracle
- 14. conversione fuso orario Silverlight
- 15. Conversione del fuso orario in php
- 16. Python Fuso orario conversione
- 17. Come ottenere la differenza di orario in iPhone
- 18. Conversione di una stringa con fuso orario
- 19. formato orario fullcalendar
- 20. conversione di formato di un'immagine in python
- 21. Seleziona record per un determinato anno Oracle
- 22. Conversione di fusi orari Oracle (utilizzando from_tz)
- 23. Conversione del formato in formato 24 ore in Javascript
- 24. Conversione del formato data UTC in nsdate locale
- 25. pandas.to_datetime formato stringa orario incoerente
- 26. oracle odp.net Conversione SafeMapping se timestamp con fuso orario - come ottenere offset al posto del nome della zona
- 27. Calcolare la differenza di orario in minuti in SQL Server
- 28. Conversione del fuso orario nella query SQL
- 29. Data JavaScript: come sapere se l'ora legale è in vigore in un determinato fuso orario
- 30. Ottieni un paese per un determinato fuso orario Java
'EVENT_DATE_B - EVENT_DATE_A' potrebbe non essere un numero intero – turbanoff
questo non va bene per qualcosa di simile' selezionare 24 * (TO_DATE ('25 .12.12 15:37:32' , ' DD.MM.YY HH24: MI: SS ') - to_date ('25 .12.12 12:45:45', 'DD.MM.YY HH24: MI: SS')) || ':' || '00' da dual' – lexeme