Question

TIME DIFFERENCE EXCLUDING WEEKENDS/BANK HOLIDAYS AND HRS BETWEEN 8 TO 6PM

Asked by: philsivyer

I need to get the time difference between 2 dates excluding weekends/bank holidays and only hours between 9am to 5pm (office hours)
my table
REF        STARTDATE                    ENDDATE
001        01/06/2007                      28/09/2007

Any help much appreciated.
Phil

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2007-10-01 at 06:07:44ID22863573
Tags

weekends

,

excluding

,

difference

,

between

,

holidays

,

Oracle HCM

Topics

Enterprise Software

,

Oracle 9.x

Participating Experts
3
Points
500
Comments
4

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. Total hours from 2 dates excluding bank holidays and wee…
    Hi, I wonder if you guys can help me on a urgent Formula? Baically I need the correct hours for a Out of SLA. Here is the story I have a date Created Date field which is computed (This shows the date + time i.e. 23/07/2003 12:23) I have a CompleteDate (A date 03/09/2003 12...
  2. List of all dates excluding weekends and bank holidays
    Hi there I need to be able to generate a list of all dates between two dates (excluding weekends and bank holidays), so that i can input it in a database. e.g. all dates between 2006-01-04 and 2006-01-11 Dates --------- 2006-01-04 2006-01-05 2006-01-06 2006-01-09 2006-01-1...
  3. How do I get the dates for each bank & public holiday
    Hi, How can I get the dates for every bank & public holiday for a defined year... Good Friday Easter Bank Holiday May Bank Holiday Spring Bank Holiday Summer Bank Holiday Cheers

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: MikeOM_DBAPosted on 2007-10-01 at 08:32:09ID: 19991404


You need to code your own function to do it.
Start  by customizing the following function gleaned from Oracle Resource Stop:

rem Script Description: This procedure determines the business days between two dates.
rem                     There are many times in reports or in calculations for forms
rem                     where the number of business days between two dates needs to be
rem                     determined. Here is a method for calculating this (excluding holidays).
rem
rem                     The following SQL script shows an algorythm that uses the standard
rem                     Oracle date functions to calculate the number of business days between
rem                     to dates. This method cannot exclude holidays (obviously), however
rem                     there are many times that just the standard business days is useful.
rem                     There are other algorythms that could be used, however this one works
rem                     well. The algorythm is described below in the comments of this script.
rem
rem
rem                     ***************************************************************
rem                     An example of business days calculation in pseudo-code
rem                                                              
rem                     The algorythm is:                                            
rem                                                              
rem                     1) Take the absolute difference between the dates          
rem                        TRUNC(p_to_date) - to_date(p_from_date)                
rem                     2) Subtract the weekends (number of weeks in the range      
rem                        TRUNC(p_to_date,'D') = 1st day of week that  
rem                                                        end of period is in    
rem                        TRUNC(p_from_date,'D') = Last day of week that  
rem                                                        start of period is in  
rem                        So subtracting these two gives the number of days      
rem                        between the two dates but including all of the days in
rem                        the weeks that the dates start and end in.  When this  
rem                        number is divided by 7 it gives the number of weeks.  
rem                        Multiplying by 2 gives the number of weekend days.       
rem                     3) Add one day to make the range inclusive (The '1 + ' )    
rem                     4) Subtract 1 day if the ending date is on a saturday      
rem                        DECODE(to_char(p_to_date,'D'),7,-1,0)        
rem                        --> If the day of the week is saturday (7), returns -1
rem                     4) Subtract 1 day if the start date is on a sunday          
rem                        DECODE(to_char(p_from_date,'D'),1,-1)          
rem                        --> If the day of the week is sunday (1), returns 1    
rem
rem                     A note concerning Holiday considerations:
rem                     It is possible to account for holidays as well. By performing the
rem                     following changes:
rem                  
rem                     1) Calculate the number of holidays that fall between the from_date
rem                        and to_date values.
rem
rem                        SELECT COUNT(*) INTO nHolidays
rem                        FROM Your_Holiday_Table
rem                        WHERE holiday_date BETWEEN p_from_date AND p_to_date;
rem
rem                     2) Then substract nHolidays from your business_days variable before
rem                        returning.
rem                     ***************************************************************
rem
rem
rem Prepared By:        Oracle Resource Stop
rem
rem Usage Information:  See Below
rem
CREATE OR REPLACE FUNCTION business_days(p_from_date IN DATE, p_to_date IN DATE)
   RETURN NUMBER IS
busdays NUMBER;
BEGIN
  -- Get the absolute date range
  busdays := TRUNC(p_to_date) - TRUNC(p_from_date)  
        -- Now subtract the weekends
            --  this statement rounds the range to whole weeks (using
            --  TRUNC and determines the number of days in the range.
            --  then it divides by 7 to get the number of weeks, and
            --  multiplies by 2 to get the number of weekend days.
       - ((TRUNC(p_to_date,'D')-TRUNC(to_date(p_from_date),'D'))/7)*2
            -- Add one to make the range inclusive
       + 1;

  rem Adjust for ending date on a saturday
  IF TO_CHAR(p_to_date,'D') = '7' THEN
    busdays := busdays - 1;
  END IF;

  rem Adjust for starting date on a sunday
  IF TO_CHAR(p_from_date,'D') = '1' THEN
    busdays := busdays - 1;
  END IF;
  RETURN(busdays);
END;
/
show errors;

/*********************************************************************************************
Rem  The following is a sample of possible usage for the business_days procedure
Rem  This sample will calculate business days between a given date.
********************************************************************************************
SQL*Plus> select business_days('01-AUG-96','15-AUG-96') from dual;

BUSINESS_DAYS('01-AUG-96','15-AUG-96')                                          
--------------------------------------                                          
                                    11                                          

1 row selected.
*/


 

by: nav_kum_vPosted on 2007-10-01 at 15:01:32ID: 19994559

There is no other way out apart from building our own logic for this question. We have similar functionality but in one table, all business happening at one location say london in a company refer to a table called business-days.

This table will not have weekend dates and also this table will not have any record for a holiday.

Thanks

 

by: Computer101Posted on 2007-11-07 at 16:27:17ID: 20238154

Forced accept.

Computer101
EE Admin

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...