Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Floatzahl zu Zeit konvertieren?

Empfohlene Antworten

Veröffentlicht

Hi,

hab n einfachen Select der zwei Uhrzeiten voneinander abzieht. Das Prob ist, das Ergebnis dieser Rechnung is ne Floatzahl, ich hätte aber lieber ne Uhrzeit, sicher könnt ich Excel die Arbeit übernehmen lassen, aber das is ja nich Zweck der Aufgabe, soll ja was lernen, daher wüsst ich gern ne lösung dafür.

select vstart, to_char(vstart, 'hh24:mi:ss') Beginn, to_char(vende, 'hh24:mi:ss')Ende, vende - vstart, ...

vende und vstart sind komplette DATE-Felder

vstart-vende liefert mir nen Floatwert a la 0,00130787037037037 was dann 00:01:53 als Zeit darstellt (laut excel)

Mach ich to_date(vende - vstart, 'hh24:mi:ss') sagt er:

ORA-01858: a non-numeric character was found where a numeric was expected

Hi, SNOWMAN!

;) Nun, wenn Du etwas lernen sollst, dann lerne:

Du weißt, wie 18:00Uhr dezimal dargestellt wird? --> 0,75

Dann weißt Du, wie 06:00Uhr dargestellt wird: --> 0,25

12:00Uhr ist dann folgerichtig = 0,5.

Heißt: Jede Uhrzeit eines Tages kann dezimal im Intervall [0; 1[ dargestellt werden. (23:59:59 = 0,999988425925926)

Wie wird gerechnet?

Um zu ermitteln, wie der Dezimalwert (Dw) für z.B. x-Uhr (Runde Stunden ohne Minuten: xStd) ist, wird die Formel

Dw = 1 / 24 * xStd

verwendet.

Beispiel:

Gegeben: 21 Stunden (xStd)

Gesucht: Dezimalwert (Dw)

Dw = 1 / 24 * 21 (= 1 / 4 * 3 = 3 / 4) = 0,75

--> Dezimalwert = 0,75

Mit ein wenig umstellen kann aus dem gegebenen Dezimalwert die Stunden (xStd) ermitteln:

xStd = 24 * Dw

Beispiel:

Gegeben: 0,75 (Dw)

Gesucht: Stunden (xStd)

xStd = 0,75 * 24 = 6

--> 6 Stunden

Wie die Minuten zu berechnen sind?

Das überlasse ich Dir. ;):)

Oder du nimmst die Funktion to_dsintervall (funktioniert so nur wenn du dich innerhalb eines Tages bewegst....

Folgende Funktion gibt die Zeit seit 00:00:00 Uhr an...

(Ich weiß das kann man auch einfacher haben, aber ich habe das so getestet da ich keine Tabelle aufbauen wollte mit Testdaten...)

select to_char(trunc(sysdate) + TO_DSINTERVAL('0 '|| to_char(sysdate,' hh24:mi:ss')) ,'hh24:mi:ss') from dual;

Für deinen Fall müsste das dann ungefähr folgendermassen aussehen...:

select vstart, to_char(vstart, 'hh24:mi:ss') Beginn, to_char(vende, 'hh24:mi:ss')Ende, to_char(vende - TO_DSINTERVAL('0 '|| to_char(vstart,' hh24:mi:ss')) ,'hh24:mi:ss') from ....

Schöne Grüße....

mme

cool, danke für die gute erklärung!!!!!!!

das werd ich gleich mal in meine sql dokumentation übernehmen

hat auch super funktioniert!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.