Categories
- All Categories
- 15 Oracle Analytics Sharing Center
- 15 Oracle Analytics Lounge
- 214 Oracle Analytics News
- 42 Oracle Analytics Videos
- 15.7K Oracle Analytics Forums
- 6.1K Oracle Analytics Idea Labs
- Oracle Analytics User Groups
- 78 Oracle Analytics Trainings
- 14 Oracle Analytics Data Visualizations Challenge
- Find Partners
- For Partners
TimeStampDiff in Hours Excluding Weekends
Hi,
Anyone can help how can I get the timestampdiff in hours between two dates:
- ("Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE")
- ("Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE")
and weekend should be excluded in the calculation?
I have this below that shows timestampdiff in days, however I want to see the result in hours.
Thanks!
CASE WHEN DAYOFWEEK("Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE") > DAYOFWEEK("Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE") THEN CASE WHEN DAYOFWEEK("Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE") = 7 THEN TIMESTAMPDIFF(SQL_TSI_DAY, "Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE", "Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE") - (Floor(TIMESTAMPDIFF(SQL_TSI_DAY, "Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE", "Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE")/7)*2)-1 ELSE TIMESTAMPDIFF(SQL_TSI_DAY, "Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE", "Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE") - (Floor(TIMESTAMPDIFF(SQL_TSI_DAY, "Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE", "Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE")/7)*2)-2 END ELSE TIMESTAMPDIFF(SQL_TSI_DAY, "Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE", "Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE") - (Floor(TIMESTAMPDIFF(SQL_TSI_DAY, "Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE", "Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE")/7)*2) END
Answers
-
@JobDeLuna - Please try using the below query and let us know if it helps:
CASE
WHEN DAYOFWEEK("Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE") > DAYOFWEEK("Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE")
THEN
CASE
WHEN DAYOFWEEK("Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE") = 7
THEN
TIMESTAMPDIFF(SQL_TSI_HOUR, "Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE", "Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE")
- (FLOOR(TIMESTAMPDIFF(SQL_TSI_HOUR, "Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE", "Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE") / 168) * 48) - 1
ELSE
TIMESTAMPDIFF(SQL_TSI_HOUR, "Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE", "Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE")
- (FLOOR(TIMESTAMPDIFF(SQL_TSI_HOUR, "Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE", "Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE") / 168) * 48) - 2
END
ELSE
TIMESTAMPDIFF(SQL_TSI_HOUR, "Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE", "Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE")
- (FLOOR(TIMESTAMPDIFF(SQL_TSI_HOUR, "Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE", "Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE") / 168) * 48)
ENDThis query should now return the time difference in hours while considering weekends.
1 -
Hi, @Sumanth V -Oracle , thank you for your response, however my goal is not to consider the weekends or exclude the weekends, specifically Saturday and Sunday. Thank you!
0 -
Hi, @Sumanth V -Oracle , I have tried to use the calculation that you sent however it seems it still considers the weekend
and it should 24 hours only
0 -
I have this bucketing of PR to PO Cycle time and currently this considers the weekends and my goal is to exclude the weekends in the calculation:
Case when ((TIMESTAMPDIFF(SQL_TSI_HOUR,"Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE","Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE"))) <= 8 THEN '.WITHIN 8 HOURS' WHEN ((TIMESTAMPDIFF(SQL_TSI_HOUR,"Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE","Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE"))) > 8 AND ((TIMESTAMPDIFF(SQL_TSI_HOUR,"Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE","Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE"))) <= 24 THEN '>08 HRS to 1 DAY' WHEN ((TIMESTAMPDIFF(SQL_TSI_HOUR,"Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE","Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE"))) > 24 AND ((TIMESTAMPDIFF(SQL_TSI_HOUR,"Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE","Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE"))) <= 48 THEN '>1 DAY to 2 DAYS' WHEN
((TIMESTAMPDIFF(SQL_TSI_HOUR,"Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE","Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE"))) > 48 AND ((TIMESTAMPDIFF(SQL_TSI_HOUR,"Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE","Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE"))) <= 72 THEN '>2 DAYS to 3 DAYS' WHEN
((TIMESTAMPDIFF(SQL_TSI_HOUR,"Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE","Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE"))) > 72 AND ((TIMESTAMPDIFF(SQL_TSI_HOUR,"Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE","Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE"))) <= 96 THEN '>3 DAYS to 4 DAYS' WHEN
((TIMESTAMPDIFF(SQL_TSI_HOUR,"Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE","Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE"))) > 96 AND ((TIMESTAMPDIFF(SQL_TSI_HOUR,"Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE","Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE"))) <= 120 THEN '>4 DAYS to 5 DAYS' WHEN ((TIMESTAMPDIFF(SQL_TSI_HOUR,"Procurement - Purchase Orders"."Requisition Lines"."DW_FA_X_REQ_LINE_TIMESTAMPS_LASTAPPROVALDATE","Procurement - Purchase Orders"."Document Details"."DW_FA_X_PO_TIMESTAMPS_CREATIONDATE"))) > 120 THEN '>5 DAYS' ELSE 'NULL' END0