2016-08-21 241 views
0

我需要得到2分鐘之間的時間差(以分鐘爲單位的時差)。最後的差異將根據每個日期的下午6點計算。找到兩個日期時間之間的微小差異

的樣本數據:最後一欄

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 

的必要結果這裏的日期將始終處於相同的日期,並根據默認值計算出18點的最後一個用戶的時間差。假設任何用戶的日期不會跨越6PM時間。

請建議如何編寫相同的查詢。

回答

0

我找到了解決辦法。如果它不正確,讓我知道

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

您可以使用lead窗口功能。

我假設你的表格被稱爲mytable,並且日期列是mydate(因爲它是保留字,所以調用列Date是個壞主意)。

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