Wie konvertiere ich EVENT_DATE_B - EVENT_DATE_A
, die eine Anzahl von Tagen ist, um mit HH:MM
Format string?Konvertieren von Zeitunterschied zu einem bestimmten Format in Oracle
Antwort
Wenn Termine sind unterscheiden sich nur in der Zeit Teil Sie zweites Intervall Tag verwenden können. Zum Beispiel:
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
Aber natürlich wird es nicht immer der Fall sein. So könnte man eine lange Abfrage schreiben, um verschiedene Teile von Zeit zu berechnen, aber ich denke, ich mit dieser einfachen Funktion gehen würde:
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
Und nun die Abfrage wäre:
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
Ein anderer Ansatz (eine Abfrage kann an verschiedenen Tagen sein):
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 Natürlich. Aus irgendeinem Grund hatte ich nicht über 'NumToDSInterval' nachgedacht :) –
Ich denke, Sie müssen die Anzahl der Tage zwischen Datum1 und Datum2 herausfinden, dann diese Differenz von Datum2 subtrahieren und das Enddatum in Ihr Format umrechnen. Kopieren/Einfügen und sehen Sie die Ausgabe:
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. zu für Datum und Uhrzeit in bestimmten Format konvertieren Text
- 2. Konvertieren von Sekunden in bestimmten Format von Minuten - Javascript
- 3. C# DateTimeOffset Formatierung zu einem bestimmten Format
- 4. String-Formatierung zu einem bestimmten Format mit String-Formatierer
- 5. Zeitunterschied im HH: MM Format erhalten php
- 6. Zeitunterschied in Sekunden von numpy.timedelta64
- 7. konvertieren Zeichenwerte zu bestimmten Datumsformat
- 8. Konvertieren von Datum zu Epoche-Oracle
- 9. Wie konvertiert man QString in QDate in einem bestimmten Format?
- 10. Serialize DateTime zu XML in einem bestimmten Format. NET
- 11. Konvertieren zeilenbasierter Werte zu Spalten in Oracle
- 12. Konvertieren von UUIDs von einem Format in ein anderes
- 13. Berechnen Zeitunterschied in Excel
- 14. konvertieren Datum von einem Format in ein anderes in Java
- 15. Oracle to_date Format Problem
- 16. Wie kann time_t in einem bestimmten Format gedruckt werden?
- 17. Parse String Datum zu bestimmten Format
- 18. PHP Überprüfen Sie, ob Datum zu einem bestimmten Datum in einem bestimmten Format vergangen ist
- 19. VARCHAR Formatierung von Daten in einem bestimmten Format
- 20. Benutzereingabe von 2-D-Array in einem bestimmten Format (Python2)
- 21. Wie Zeitunterschied in MYSQL zu berechnen
- 22. Anzeigen von Daten aus mehreren Tabellen in einem bestimmten Format
- 23. erhalten Datum in einem bestimmten Format von SQL Server 2012
- 24. Zeitunterschied in Excel
- 25. Konvertieren von DateTime zu TimeSpan
- 26. Konvertieren von SQL Server Query zu Oracle Abfrage
- 27. Wie validiere ich ein jtextfield zu einem bestimmten Format?
- 28. Konvertieren von Nummer in Indien Locale Format
- 29. konvertieren Schnittstelle {} zu bestimmten Typ
- 30. Bytearray von Oracle RAW in System.Guid konvertieren?
'EVENT_DATE_B - EVENT_DATE_A' kann nicht eine ganze Zahl – turbanoff
sein, dass etwas nicht gut ist wie' wählen 24 * (to_date ('25 .12.12 15.37.32' , ' DD.MM.YY HH24: MI: SS ') - bis_Datum ('25 .12.12 12:45:45', 'DD.MM.YY HH24: MI: SS')) || ':' || '00' von Dual ' – lexeme