2016-08-21 2 views
0

Ich brauche die Differenz zwischen 2 Datum Zeit in Minuten (Zeitunterschied in Minuten). Und der letzte Unterschied wird basierend auf 6 PM eines jeden Datums berechnet.Finden Sie den Minutenunterschied zwischen 2 Datum Zeit

Beispieldaten: Notwendigkeit Ergebnis der letzten Spalte

User_Name Date   Time difference in minutes 
User 1 1/1/06 12:00 PM  30 
user 2 1/1/06 12:30 PM  315 
user 3 1/1/06 5:45 PM  15 

Hier wird das Datum immer in demselben Datum und die letzten Differenz Benutzer Datum berechnet basierend auf dem Wert 06.00 Standard. Unter der Annahme, dass die Daten eines Benutzers nicht 18:00 Uhr überschreiten.

Bitte schlagen Sie vor, wie Sie die Abfrage für die gleiche schreiben.

Antwort

0

fand ich die Lösung .. Wenn es mir nicht

SELECT User_name,created_date, 
trunc(to_number((cast(nvl(lead (created_date,1) OVER (ORDER BY created_date),TRUNC(SYSDATE) + (19/24)) as date) - cast(created_date as date)))*24*60) as difference 
FROM users; 
2

Sie könnten nutzen die lead Fensterfunktion kennen korrigieren lassen.

Ich gehe davon aus Ihrer Tabelle mytable genannt wird und die Datumsspalte ist mydate (es ist eine schlechte Idee, eine Spalte Date zu nennen, wie es ein reserviertes Wort ist).

select user_name, 
     round((lead(mydate, 1, trunc(mydate)+18/24) 
      over (partition by trunc(mydate) order by mydate) 
     - mydate) *24*60) as difference 
from  mytable 
Verwandte Themen