Dates between two dates

HI everyone!
I'm trying to obtain the dates between two given dates....
example:
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date a = sdf.parse("12/10/2005");
Date b = sdf.parse("22/12/2005");My desired result its a ArrayList of all dates between that period...
I already used the GregorianCalendar adding one day in a while condition until its equals the second date but it dosn't work for large periods of time...
Can somebody help me with this task?
thanks in advance !

while(gc.getTime().compareTo(finaldate ) != 0){No, that's still fragile. You're still comparing EXACT values, instead of checking for when one equals OR EXCEEDS the other.
If you're not going to use DrLaszlo's example to use the Calendar class for a better way, then at least do this instead:
while(gc.getTime().compareTo(finaldate ) < 0){                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Similar Messages

  • Findig dates between two dates

    Hi everybody,
    I have one table (TEST) with 2 columns having only one record
    i need list of dates between from_date and to_date
    the sample data...
    from_date to_date
    ====== ======
    02-JUL-09 17-JUL-2009
    I found below query to retrieve the dates between two dates.
    select to_date('02-jul-2009','dd-mon-yyyy')+level-1 dt from dual
    connect by level<=to_date('17-jul-2009','dd-mon-yyyy')-to_date('02-jul-2009','dd-mon-yyyy')+1
    It is working properly.
    i have changed the above query with my table column names
    select to_date(from_date,'dd-mon-yyyy')+level-1 dt from Test
    connect by level<=to_date(to_date,'dd-mon-yyyy')-to_date(from_date,'dd-mon-yyyy')+1
    In this case it is not working...
    i am unable to find the reason...
    Thank you.

    Hi,
    It is working fine for me, what is the data type for from_date and to_date.
    select to_date(from_date,'dd-mon-yyyy')+level-1 dt from Test
    connect by level<=to_date(to_date,'dd-mon-yyyy')-to_date(from_date,'dd-mon-yyyy')+1;
    DT
    02-JUL-09
    03-JUL-09
    04-JUL-09
    05-JUL-09
    06-JUL-09
    07-JUL-09
    08-JUL-09
    09-JUL-09
    10-JUL-09
    11-JUL-09
    12-JUL-09
    13-JUL-09
    14-JUL-09
    15-JUL-09
    16-JUL-09
    17-JUL-09Regards
    Anurag Tibrewal
    PS: Also post your output with the second query.

  • How to get the data between two dates?

    Hi all,
    I am facing a problem of getting the data betwwen two dates.
    I have written a query as
    "select * from table1 a where a.dt between trunc(sysdate) and trunc(sysdate)-30"
    It is not showing any errors or warnings.But the data is not coming though the data is in the table1 between these two dates.
    Regards,
    Kumar

    Your ordering is probably wrong:
    SELECT *
      FROM table1 a
    WHERE a.dt BETWEEN TRUNC (SYSDATE) - 30 AND TRUNC (SYSDATE)

  • Occurrence of a date between two dates

    I want to find occurence of a particular date between two given dates.
    for example if I have 01/03/2006 and 01/01/2007 and I want to find
    if an 06th April exist between them, how do i find it?Pls help.. it's very urgent.
    Thnx
    RK

    Pls help.. it's very urgent.I hate this. If you started your homework a couple days before it was due, you wouldn't have this problem
    Anyway see
    Date.getTime()
    and
    Calendar.getTimeInMillis()
    If you've only got a String date, see SimpleDateFormat
    Once you have them all in long values, just compare the numbers to make sure the new date is > one of them and < the other

  • SQL query to get dates between two dates

    Hi,
    We have one table with start date and end date...Now i need to get all dates between start date and end date...
    Table looks like below..
    Create table date_table (start_date date,end_date date);
    Data in the table will be like below:
    start_date            end_date
    01-Jan-2013       04-Jan-2013
    01-Feb-2013       03-Feb-2013
    01-May-2013        03-May-2013
    I want a result as below..
    holiday_dates
    01-Jan-2013
    02-Jan-2013
    03-Jan-2013
    04-Jan-2013
    01-Feb-2013
    02-Feb-2013
    03-Feb-2013
    01-May-2013
    02-May-2013
    03-May-2013
    Can any one helps..?

    select * from date_table;
    START_DAT END_DATE
    01-JAN-13 04-JAN-13
    01-FEB-13 07-FEB-13
    07-MAR-13 12-MAR-13
    select start_date-1+level output from
    date_table connect by level<=end_date-start_date+1
    and prior start_date=start_date and prior sys_guid() is not null
    OUTPUT
    01-JAN-13
    02-JAN-13
    03-JAN-13
    04-JAN-13
    01-FEB-13
    02-FEB-13
    03-FEB-13
    04-FEB-13
    05-FEB-13
    06-FEB-13
    07-FEB-13
    07-MAR-13
    08-MAR-13
    09-MAR-13
    10-MAR-13
    11-MAR-13
    12-MAR-13

  • How to get the dates between Two dates excluding Saturaday and Sunday

    Dear All,
    select to_date('25-04-2012', 'DD-MM-YYYY') + rownum -1 dt
        from dual
        connect by level <= to_date('05-05-2012', 'DD-MM-YYYY') - to_date('25-04-2012', 'DD-MM-YYYY') + 1;The above query returning the following output,
    DT
    DT
    04/25/2012
    04/26/2012
    04/27/2012
    04/28/2012
    04/29/2012
    04/30/2012
    05/01/2012
    05/02/2012
    05/03/2012
    05/04/2012
    05/05/2012here I need to exclude the Dates which comes on 'saturday' and 'sunday' and also the common holiday
    Here it is '01-May-2012' and I need the output like the following,
    04/25/2012
    04/26/2012
    04/27/2012
    04/30/2012
    05/02/2012
    05/03/2012
    05/04/2012I need the common query to calculate between any two dates.
    Can anyone suggest me?
    Thank you,
    Regsrds,
    gurujothi

    Hi Frank,
    Sorry for my fault,
    The following is my table description,
    CREATE TABLE  "DATES"
       (     "FROMDATE" DATE,
         "TODATE" DATE,
                       "LEAVE_ID" Number(5)
    Insert into dates values('05-02-2012','05-05-2012',1);
    Create table holiday_dates(holidays date);
    insert into holiday_dates values('01-05-2012');Now when I used this query,
    select count(*) from (select dt
    from(
        select to_date(fromdate, 'DD-MM-YYYY') + rownum -1 dt
            from dates
            connect by level <= to_date(todate, 'DD-MM-YYYY') - to_date(fromdate, 'DD-MM-YYYY') + 1
    where to_char(dt,'fmday') not in ('sunday','saturday') minus (select holidays from holiday_dates)) dual;
    Count(*)
       64
    Insert into dates values('01/05/2012','05/05/2012',2);
    /Now my table has 2 rows,
    select  *  from dates;
    FROMDATE     TODATE         LEAVE_ID
    01/05/2012     05/05/2012            1
    05/02/2012     05/05/2012            2Now when I used this query,
    select count(*) from (select dt
    from(
        select to_date(fromdate, 'DD-MM-YYYY') + rownum -1 dt
            from dates
            connect by level <= to_date(todate, 'DD-MM-YYYY') - to_date(fromdate, 'DD-MM-YYYY') + 1
    where to_char(dt,'fmday') not in ('sunday','saturday') minus (select holidays from holiday_dates)) dual;The output is ,
    COUNT(*)
    1987How to get the output using the max(leave_id) like the following,
    select..........from... where leave_id=(select max(leave_id) from dates);where to add "WHERE" clause in the above query?
    Thank you,
    Regards,
    Gurujothi.
    Edited by: Gurujothi on May 3, 2012 8:43 PM
    Edited by: Gurujothi on May 3, 2012 8:44 PM

  • Sql Query for getting data between two dates

    Dear Sir,
    I have one problem, i have date stored in varchar datatype of (X) table in mysql as it was not supporting the date format of (dd/mm/yyyy) so know the problem is,
    When i going to get the data between the the two dates it is giving the un reliable answers such that
    when i am asking the query as data between 1st April to 31st December 2009 it is showing the data from the 2008 .
    is there any way to solve this problem,please help this is an urgent requirement, your replay will be helpful to me.
    With Regards
    Ramakrishna Y

    You either have a SQL problem and this is the incorrect place to ask.
    Or you have a Java problem in code we cannot see. When posting code use the code tags. Click the CODE button and paste your code between the tags that appear.

  • How to get list of all the dates between two dates

    Hi, Can anybody please help me ..
    I have two dates in string format ("dd/MM/yyyy).I need to get all the dates in between these two dates.How can I do thin in java
    Thanks in advance

    Look at classes Calendar and SimpleDateFormat.
    And get your abstraction straight: you don't have two dates. You have two Strings that represent a date. To use them, you have to convert them to Date objects first with SDF.

  • Data between two dates in a 12-month period

    Hello Gentlemen
    I am facing a problem hope you would solve it.
    I have a table
    CREATE TABLE MATCHES
    (MT_ID     NUMBER(4) CONSTRAINT MT_ID_PK PRIMARY KEY,
    START_DATE     DATE,
    END_DATE     DATE,
    TEAM_A     NUMBER(2),
    TEAM_B     NUMBER(2),
    SERIES_ID     NUMBER(3))
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B,SERIES_ID) VALUES(1,'1 Apr 1993', '5 Apr 1993',1,2,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B,SERIES_ID) VALUES(2,'21 Apr 1993', '25 Apr 1993',2,1,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B,SERIES_ID) VALUES(3,'30 Mar 1994', '3 Apr 1994',4,2,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B,SERIES_ID) VALUES(4,'1 May 1994', '5 May 1994',8,1,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B,SERIES_ID) VALUES(5,'24 Nov 1994', '28 Nov 1994',5,7,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B,SERIES_ID) VALUES(6,'31 Mar 1999', '4 Apr 1999',3,6,1);
    select * from matches order by 1
    MT_ID     START_DATE     END_DATE     TEAM_A     TEAM_B     SERIES_ID
    1     01-APR-93     05-APR-93     1     2     1
    2     21-APR-93     25-APR-93     2     1     1
    3     30-MAR-94     03-APR-94     4     2     1
    4     01-MAY-94     05-MAY-94     8     1     1
    5     24-NOV-94     28-NOV-94     5     7     1
    6     31-MAR-99     04-APR-99     3     6     1Where
    MT_ID is Match ID which is primary key
    stat_date is the start date of the match and end_date is the date on which the match ended.
    Each match has two teams i.e Team A and Team B. Each team has its unique ID. So in the above data there are eight teams form
    ID 1 to 8.
    Duration of match can be taken out if we minus the start date from the end date. For example:
    Select END_DATE-START_DATE +1
    From MATCHES
    END_DATE-START_DATE+1
    5
    5
    5
    5
    5
    5 1 is added to include the start day too.
    My requirment is as follows:
    For each of the 8 Teams, show
    1. How many matches they played in each of the 7 twelve month periods from 1 April 1993 to 31 March 2000? If a match overlaped a 12 month period, then it would be treated as one match each on either side on the 12 month period.
    For example, if a match started on 30 March 1994 and ended on 3 Apr 1994 then for the 12-month year starting from 1 Apr 1993 to 31 March 1994 it would be treated as one match and for the 12-month period starting from 1 Apr 1994 to 31 March 1995 it would be treated as another match. Becuase the match was split into 2 + 3 days on either side of the 12-month period.
    2. How many days each team was playing a match in each of the 7 twelve month periods from 1 April 1993 to 31 March 2000?
    For example, a team played 3 matches between Apr 1, 1993 and Mar 31, 1994. The Duration of each of the matches was 5+5+5 = 15 days. But the third match overlaped the 12-month period which started on 30 Mar 1994 and ended on 3 Apr 1994. So the correct number of playing days for that team would be 5 + 5 + 2 = 12 days from Apr 1, 1993 and Mar 31, 1994.
    A want an efficient query that gets me both of the above answers
    My desired output is like this:
    For Team ID = 1      
    Period                       MT   Playing Days
    1-Apr-1993 to 31-Mar-1994    2    10    
    1-Apr-1994 to 31-Mar-1995    1    5
    1-Apr-1995 to 31-Mar-1996    0    0
    1-Apr-1996 to 31-Mar-1997    0    0 
    1-Apr-1997 to 31-Mar-1998    0    0
    1-Apr-1998 to 31-Mar-1999    0    0
    1-Apr-1999 to 31-Mar-2000    0    0
    For Team ID = 2      
    Period                       MT   Playing Days
    1-Apr-1993 to 31-Mar-1994    3    12    
    1-Apr-1994 to 31-Mar-1995    1    3
    1-Apr-1995 to 31-Mar-1996    0    0
    1-Apr-1996 to 31-Mar-1997    0    0 
    1-Apr-1997 to 31-Mar-1998    0    0
    1-Apr-1998 to 31-Mar-1999    0    0
    1-Apr-1999 to 31-Mar-2000    0    0
    For Team ID = 3      
    Period                       MT   Playing Days
    1-Apr-1993 to 31-Mar-1994    0    0    
    1-Apr-1994 to 31-Mar-1995    0    0
    1-Apr-1995 to 31-Mar-1996    0    0
    1-Apr-1996 to 31-Mar-1997    0    0 
    1-Apr-1997 to 31-Mar-1998    0    0
    1-Apr-1998 to 31-Mar-1999    1    1
    1-Apr-1999 to 31-Mar-2000    1    4
    For Team ID = 4      
    Period                       MT   Playing Days
    1-Apr-1993 to 31-Mar-1994    1    2    
    1-Apr-1994 to 31-Mar-1995    1    3
    1-Apr-1995 to 31-Mar-1996    0    0
    1-Apr-1996 to 31-Mar-1997    0    0 
    1-Apr-1997 to 31-Mar-1998    0    0
    1-Apr-1998 to 31-Mar-1999    0    0
    1-Apr-1999 to 31-Mar-2000    0    0
    For Team ID = 5     
    Period                       MT   Playing Days
    1-Apr-1993 to 31-Mar-1994    0    0    
    1-Apr-1994 to 31-Mar-1995    1    5
    1-Apr-1995 to 31-Mar-1996    0    0
    1-Apr-1996 to 31-Mar-1997    0    0 
    1-Apr-1997 to 31-Mar-1998    0    0
    1-Apr-1998 to 31-Mar-1999    0    0
    1-Apr-1999 to 31-Mar-2000    0    0
    For Team ID = 6     
    Period                       MT   Playing Days
    1-Apr-1993 to 31-Mar-1994    0    0    
    1-Apr-1994 to 31-Mar-1995    0    0
    1-Apr-1995 to 31-Mar-1996    0    0
    1-Apr-1996 to 31-Mar-1997    0    0 
    1-Apr-1997 to 31-Mar-1998    0    0
    1-Apr-1998 to 31-Mar-1999    1    1
    1-Apr-1999 to 31-Mar-2000    1    4
    For Team ID = 7     
    Period                       MT   Playing Days
    1-Apr-1993 to 31-Mar-1994    0    0    
    1-Apr-1994 to 31-Mar-1995    1    5
    1-Apr-1995 to 31-Mar-1996    0    0
    1-Apr-1996 to 31-Mar-1997    0    0 
    1-Apr-1997 to 31-Mar-1998    0    0
    1-Apr-1998 to 31-Mar-1999    0    0
    1-Apr-1999 to 31-Mar-2000    0    0
    For Team ID = 8     
    Period                       MT   Playing Days
    1-Apr-1993 to 31-Mar-1994    0    0    
    1-Apr-1994 to 31-Mar-1995    1    5
    1-Apr-1995 to 31-Mar-1996    0    0
    1-Apr-1996 to 31-Mar-1997    0    0 
    1-Apr-1997 to 31-Mar-1998    0    0
    1-Apr-1998 to 31-Mar-1999    0    0
    1-Apr-1999 to 31-Mar-2000    0    0I would appreciate a prompt reply in this regard.
    Thanks in advance
    Ramis Shah

    Dear Oscar
    Thanks for your feedback. Yes, this problem has to be resolved becuase SQL from browser is better to work with. The command prompt SQLPlus is not user friendly.
    Any way, Oscar I checked your last query on the sample data that I also posted in my question. It was fine. But when I ran the query on my actual base table it did not gave me the correct results for frequency of six weeks gap. It showed 0 for even those gaps where there is actually a six week gap and where there was a gap of atleast six weeks on more than one ocassion in a 12-month period it shows only 1 for those.
    THe "Free days" were however generated correct by the query and its further accumulution to next period at cut-off point (31-Mar-YYYY) is also correct..But I missed to tell you one thing which I explained below.
    The is no difference in between the base tables and the dummy table. The only difference is ofcourse the data and the number of records.
    For this reason I copied here actual base table DDL data (54 records) in order to solve the
    problem.
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1615,'03-OCT-2002','07-OCT-2002',1,7);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1617,'11-OCT-2002','15-OCT-2002',7,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1620,'19-OCT-2002','23-OCT-2002',1,7);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1623,'07-NOV-2002','11-NOV-2002',1,2);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1628,'21-NOV-2002','25-NOV-2002',2,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1629,'29-NOV-2002','03-DEC-2002',2,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1634,'26-DEC-2002','30-DEC-2002',1,2);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1636,'02-JAN-2003','06-JAN-2003',2,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1638,'10-APR-2003','14-APR-2003',4,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1639,'19-APR-2003','23-APR-2003',1,4);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1643,'01-MAY-2003','05-MAY-2003',1,4);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1650,'18-JUL-2003','22-JUL-2003',12,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1652,'25-JUL-2003','29-JUL-2003',12,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1661,'09-OCT-2003','13-OCT-2003',1,11);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1663,'17-OCT-2003','21-OCT-2003',11,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1671,'04-DEC-2003','08-DEC-2003',1,6);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1673,'12-DEC-2003','16-DEC-2003',1,6 );
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1678,'26-DEC-2003','30-DEC-2003',6,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1680,'02-JAN-2004','06-JAN-2004',6,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1685,'08-MAR-2004','12-MAR-2004',1,9);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1688,'16-MAR-2004','20-MAR-2004',1,9);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1691,'24-MAR-2004','28-MAR-2004',1,9);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1706,'09-JUL-2004','13-JUL-2004',1,9);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1720,'03-NOV-2004','07-NOV-2004',6,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1721,'18-NOV-2004','22-NOV-2004',5,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1723,'26-NOV-2004','30-NOV-2004',1,5);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1726,'16-DEC-2004','20-DEC-2004',1,7);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1729,'26-DEC-2004','30-DEC-2004',7,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1731,'02-JAN-2005','06-JAN-2005',7,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1739,'10-MAR-2005','14-MAR-2005',5,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1742,'18-MAR-2005','22-MAR-2005',1,5);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1744,'26-MAR-2005','30-MAR-2005',5,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1756,'21-JUL-2005','25-JUL-2005',1,2);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1758,'04-AUG-2005','08-AUG-2005',2,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1760,'11-AUG-2005','15-AUG-2005',2,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1762,'25-AUG-2005','29-AUG-2005',2,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1763,'08-SEP-2005','12-SEP-2005',2,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1768,'14-OCT-2005','19-OCT-2005',1,21);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1769,'03-NOV-2005','07-NOV-2005',1,4);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1771,'17-NOV-2005','21-NOV-2005',4,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1773,'25-NOV-2005','29-NOV-2005',4,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1777,'16-DEC-2005','20-DEC-2005',1,3);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1779,'26-DEC-2005','30-DEC-2005',1,3);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1780,'02-JAN-2006','06-JAN-2006',3,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1789,'16-MAR-2006','20-MAR-2006',3,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1792,'24-MAR-2006','28-MAR-2006',1,3);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1795,'31-MAR-2006','04-APR-2006',3,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1797,'09-APR-2006','13-APR-2006',12,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1799,'16-APR-2006','20-APR-2006',12,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1817,'23-NOV-2006','27-NOV-2006',1,2);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1819,'01-DEC-2006','05-DEC-2006',2,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1821,'14-DEC-2006','18-DEC-2006',1,2);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1824,'26-DEC-2006','30-DEC-2006',2,1);
    INSERT INTO MATCHES (MT_ID,START_DATE,END_DATE,TEAM_A,TEAM_B) VALUES (1826,'02-JAN-2007','06-JAN-2007',2,1);Select * from matches
    MT_ID    START_DATE      END_DATE   TEAM_A  TEAM_B    
    1615     03-OCT-2002     07-OCT-2002     1     7    
    1617     11-OCT-2002     15-OCT-2002     7     1    
    1620     19-OCT-2002     23-OCT-2002     1     7    
    1623     07-NOV-2002     11-NOV-2002     1     2    
    1628     21-NOV-2002     25-NOV-2002     2     1    
    1629     29-NOV-2002     03-DEC-2002     2     1    
    1634     26-DEC-2002     30-DEC-2002     1     2    
    1636     02-JAN-2003     06-JAN-2003     2     1    
    1638     10-APR-2003     14-APR-2003     4     1    
    1639     19-APR-2003     23-APR-2003     1     4    
    1643     01-MAY-2003     05-MAY-2003     1     4    
    1650     18-JUL-2003     22-JUL-2003     12    1    
    1652     25-JUL-2003     29-JUL-2003     12    1    
    1661     09-OCT-2003     13-OCT-2003     1     11    
    1663     17-OCT-2003     21-OCT-2003     11    1    
    1671     04-DEC-2003     08-DEC-2003     1     6    
    1673     12-DEC-2003     16-DEC-2003     1     6    
    1678     26-DEC-2003     30-DEC-2003     6     1    
    1680     02-JAN-2004     06-JAN-2004     6     1    
    1685     08-MAR-2004     12-MAR-2004     1     9    
    1688     16-MAR-2004     20-MAR-2004     1     9    
    1691     24-MAR-2004     28-MAR-2004     1     9    
    1706     09-JUL-2004     13-JUL-2004     1     9    
    1720     03-NOV-2004     07-NOV-2004     6     1    
    1721     18-NOV-2004     22-NOV-2004     5     1    
    1723     26-NOV-2004     30-NOV-2004     1     5    
    1726     16-DEC-2004     20-DEC-2004     1     7    
    1729     26-DEC-2004     30-DEC-2004     7     1    
    1731     02-JAN-2005     06-JAN-2005     7     1    
    1739     10-MAR-2005     14-MAR-2005     5     1    
    1742     18-MAR-2005     22-MAR-2005     1     5    
    1744     26-MAR-2005     30-MAR-2005     5     1    
    1756     21-JUL-2005     25-JUL-2005     1     2    
    1758     04-AUG-2005     08-AUG-2005     2     1    
    1760     11-AUG-2005     15-AUG-2005     2     1    
    1762     25-AUG-2005     29-AUG-2005     2     1    
    1763     08-SEP-2005     12-SEP-2005     2     1    
    1768     14-OCT-2005     19-OCT-2005     1     21    
    1769     03-NOV-2005     07-NOV-2005     1     4    
    1771     17-NOV-2005     21-NOV-2005     4     1    
    1773     25-NOV-2005     29-NOV-2005     4     1    
    1777     16-DEC-2005     20-DEC-2005     1     3    
    1779     26-DEC-2005     30-DEC-2005     1     3    
    1780     02-JAN-2006     06-JAN-2006     3     1    
    1789     16-MAR-2006     20-MAR-2006     3     1    
    1792     24-MAR-2006     28-MAR-2006     1     3    
    1795     31-MAR-2006     04-APR-2006     3     1    
    1797     09-APR-2006     13-APR-2006     12    1    
    1799     16-APR-2006     20-APR-2006     12    1    
    1817     23-NOV-2006     27-NOV-2006     1     2    
    1819     01-DEC-2006     05-DEC-2006     2     1    
    1821     14-DEC-2006     18-DEC-2006     1     2    
    1824     26-DEC-2006     30-DEC-2006     2     1    
    1826     02-JAN-2007     06-JAN-2007     2     1     Now, I run my query to show the number of free days between each Test for matches played by TEAM = 1
    SELECT MT_ID, START_OF_FREE_DAYS,
    START_DATE-1 END_OF_FREE_DAYS, START_DATE, END_DATE, TEAM_A,
    TEAM_B, FREE_DAYS, to_char( trunc(FREE_DAYS/7)+mod(FREE_DAYS,7)/10,'990.0') WEEKS1
    FROM
    select MT_ID, lag(END_DATE, 1) over (order by MT_ID)+1 START_OF_FREE_DAYS,
    START_DATE,
    END_DATE,
    TEAM_A, TEAM_B,
    CASE
       WHEN DECODE(START_DATE-lag(START_DATE, 1) over (order by    
    MT_ID)-1,-1,0,START_DATE-lag(START_DATE, 1) over (order by MT_ID)-1) <= 4 THEN 0
       WHEN DECODE(START_DATE-lag(START_DATE, 1) over (order by    
    MT_ID)-1,-1,0,START_DATE-lag(START_DATE, 1) over (order by MT_ID)-1) > 4 THEN    
    START_DATE-lag(END_DATE, 1) over (order by MT_ID)-1 END FREE_DAYS
    FROM
    MATCHES where TEAM_A = 1 OR TEAM_B = 1
    MT_ID   START_OF   END_OF_   START_DATE  END_DATE  TEAM_ TEAM FREE_ Weeks1
                                 FREEDAYS FREE_DAYS    A    _B DAYS 
    1615   -           02-OCT-02   03-OCT-02   07-OCT-02   1   7   -     -     
    1617   08-OCT-02   10-OCT-02   11-OCT-02   15-OCT-02   7   1   3   0.3  
    1620   16-OCT-02   18-OCT-02   19-OCT-02   23-OCT-02   1   7   3   0.3  
    1623   24-OCT-02   06-NOV-02   07-NOV-02   11-NOV-02   1   2   14  2.0  
    1628   12-NOV-02   20-NOV-02   21-NOV-02   25-NOV-02   2   1   9   1.2  
    1629   26-NOV-02   28-NOV-02   29-NOV-02   03-DEC-02   2   1   3   0.3  
    1634   04-DEC-02   25-DEC-02   26-DEC-02   30-DEC-02   1   2   22  3.1  
    1636   31-DEC-02   01-JAN-03   02-JAN-03   06-JAN-03   2   1   2   0.2  
    1638   07-JAN-03   09-APR-03   10-APR-03   14-APR-03   4   1   93  13.2  
    1639   15-APR-03   18-APR-03   19-APR-03   23-APR-03   1   4   4   0.4  
    1643   24-APR-03   30-APR-03   01-MAY-03   05-MAY-03   1   4   7   1.0  
    1650   06-MAY-03   17-JUL-03   18-JUL-03   22-JUL-03   12  1   73  10.3  
    1652   23-JUL-03   24-JUL-03   25-JUL-03   29-JUL-03   12  1   2   0.2  
    1661   30-JUL-03   08-OCT-03   09-OCT-03   13-OCT-03   1   11  71  10.1  
    1663   14-OCT-03   16-OCT-03   17-OCT-03   21-OCT-03   11  1   3   0.3  
    1671   22-OCT-03   03-DEC-03   04-DEC-03   08-DEC-03   1   6   43  6.1  
    1673   09-DEC-03   11-DEC-03   12-DEC-03   16-DEC-03   1   6   3   0.3  
    1678   17-DEC-03   25-DEC-03   26-DEC-03   30-DEC-03   6   1   9   1.2  
    1680   31-DEC-03   01-JAN-04   02-JAN-04   06-JAN-04   6   1   2   0.2  
    1685   07-JAN-04   07-MAR-04   08-MAR-04   12-MAR-04   1   9   61  8.5  
    1688   13-MAR-04   15-MAR-04   16-MAR-04   20-MAR-04   1   9   3   0.3  
    1691   21-MAR-04   23-MAR-04   24-MAR-04   28-MAR-04   1   9   3   0.3  
    1706   29-MAR-04   08-JUL-04   09-JUL-04   13-JUL-04   1   9   102 14.4  
    1720   14-JUL-04   02-NOV-04   03-NOV-04   07-NOV-04   6   1   112 16.0  
    1721   08-NOV-04   17-NOV-04   18-NOV-04   22-NOV-04   5   1   10  1.3  
    1723   23-NOV-04   25-NOV-04   26-NOV-04   30-NOV-04   1   5   3   0.3  
    1726   01-DEC-04   15-DEC-04   16-DEC-04   20-DEC-04   1   7   15  2.1  
    1729   21-DEC-04   25-DEC-04   26-DEC-04   30-DEC-04   7   1   5   0.5  
    1731   31-DEC-04   01-JAN-05   02-JAN-05   06-JAN-05   7   1   2   0.2  
    1739   07-JAN-05   09-MAR-05   10-MAR-05   14-MAR-05   5   1   62  8.6  
    1742   15-MAR-05   17-MAR-05   18-MAR-05   22-MAR-05   1   5   3   0.3  
    1744   23-MAR-05   25-MAR-05   26-MAR-05   30-MAR-05   5   1   3   0.3  
    1756   31-MAR-05   20-JUL-05   21-JUL-05   25-JUL-05   1   2   112 16.0  
    1758   26-JUL-05   03-AUG-05   04-AUG-05   08-AUG-05   2   1   9   1.2  
    1760   09-AUG-05   10-AUG-05   11-AUG-05   15-AUG-05   2   1   2   0.2  
    1762   16-AUG-05   24-AUG-05   25-AUG-05   29-AUG-05   2   1   9   1.2  
    1763   30-AUG-05   07-SEP-05   08-SEP-05   12-SEP-05   2   1   9   1.2  
    1768   13-SEP-05   13-OCT-05   14-OCT-05   19-OCT-05   1   21  31  4.3  
    1769   20-OCT-05   02-NOV-05   03-NOV-05   07-NOV-05   1   4   14  2.0  
    1771   08-NOV-05   16-NOV-05   17-NOV-05   21-NOV-05   4   1   9   1.2  
    1773   22-NOV-05   24-NOV-05   25-NOV-05   29-NOV-05   4   1   3   0.3  
    1777   30-NOV-05   15-DEC-05   16-DEC-05   20-DEC-05   1   3   16  2.2  
    1779   21-DEC-05   25-DEC-05   26-DEC-05   30-DEC-05   1   3   5   0.5  
    1780   31-DEC-05   01-JAN-06   02-JAN-06   06-JAN-06   3   1   2   0.2  
    1789   07-JAN-06   15-MAR-06   16-MAR-06   20-MAR-06   3   1   68  9.5  
    1792   21-MAR-06   23-MAR-06   24-MAR-06   28-MAR-06   1   3   3   0.3  
    1795   29-MAR-06   30-MAR-06   31-MAR-06   04-APR-06   3   1   2   0.2  
    1797   05-APR-06   08-APR-06   09-APR-06   13-APR-06   12  1   4   0.4  
    1799   14-APR-06   15-APR-06   16-APR-06   20-APR-06   12  1   2   0.2  
    1817   21-APR-06   22-NOV-06   23-NOV-06   27-NOV-06   1   2   216 30.6  
    1819   28-NOV-06   30-NOV-06   01-DEC-06   05-DEC-06   2   1   3   0.3  
    1821   06-DEC-06   13-DEC-06   14-DEC-06   18-DEC-06   1   2   8   1.1  
    1824   19-DEC-06   25-DEC-06   26-DEC-06   30-DEC-06   2   1   7   1.0  
    1826   31-DEC-06   01-JAN-07   02-JAN-07   06-JAN-07   2   1   2   0.2   As you see there is one 93-day gap (from 07-JAN-03 to 09-APR-03) before MT_ID = 1638 of which 84 days come between period 01-Apr-2002 to 31-Mar-2003 and the remaining nine from April 1 to 9. This one six-week gap is very well showed by the result of your query below. But in the period from 01-Apr-2003 to 31-Mar-2004 your query below does not show any six-week gap. whereas in the same period, above the results show four instances of atleast 42-days gap. i.e. 73, 71, 43 and 61 days.
    So your query should show the following for this period:
    TOT   TEAM PERIOD                    FREEDAYS EXISTS_SIX_WEEK_GAP  
    -      1   01-Apr-2003 to 31-Mar-2004   296   4   Same is true for the next period 01-Apr-2004 to 31-Mar-2005.
    For other TEAM ID's the six-week results generated by your query are ok, becuase for each of those teams, except for Team = 21, there was only one instance of 42 days gap. The query fails only when there is more than one 42-days gap.
    For Team = 21, The query shows 1 instance of six-week gap but doesn't show the number of free days for that period. This is mainly becuase I told you in my question the other day that Free Days are calculated by taking the diffrence between the end date of the previous match and the start date of the current match. Since team = 21 played only one match so that's why the query showed no free-days becuase it did not found any previous date to take the difference. For this purpose I rephrase my question below the following table.
    When I run your query, modifying the start period to 1-Apr-2002 instead of 1992 and connect by
    level <= 5,
    with periods as ( select add_months(dt,12*(rownum-1)) start_period,
                             add_months(dt,12*rownum)-1 end_period
                      from (select to_date('1-Apr-2002') dt from dual)
                      connect by level <= 5),
    ....,on my actual data it gives me the following result:
    TOT   TEAM PERIOD                    FREEDAYS EXISTS_SIX_WEEK_GAP  
    -      1   01-Apr-2002 to 31-Mar-2003   140   1  
    -      1   01-Apr-2003 to 31-Mar-2004   296   0  
    -      1   01-Apr-2004 to 31-Mar-2005   315   0  
    -      1   01-Apr-2005 to 31-Mar-2006   293   0  
    -      1   01-Apr-2006 to 31-Mar-2007   242   0  
    TOTAL  1                         -      1286  1  
    -      2   01-Apr-2002 to 31-Mar-2003   120   1  
    -      2   01-Apr-2003 to 31-Mar-2004   366   0  
    -      2   01-Apr-2004 to 31-Mar-2005   365   0  
    -      2   01-Apr-2005 to 31-Mar-2006   340   0  
    -      2   01-Apr-2006 to 31-Mar-2007   256   0  
    TOTAL  2                         -      1447  1  
    -      3   01-Apr-2002 to 31-Mar-2003   0     0  
    -      3   01-Apr-2003 to 31-Mar-2004   0     0  
    -      3   01-Apr-2004 to 31-Mar-2005   0     0  
    -      3   01-Apr-2005 to 31-Mar-2006   80    1  
    -      3   01-Apr-2006 to 31-Mar-2007   0     0  
    TOTAL  3                         -      80    1  
    -      4   01-Apr-2002 to 31-Mar-2003   0     0  
    -      4   01-Apr-2003 to 31-Mar-2004   342   1  
    -      4   01-Apr-2004 to 31-Mar-2005   365   0  
    -      4   01-Apr-2005 to 31-Mar-2006   228   0  
    -      4   01-Apr-2006 to 31-Mar-2007   0     0  
    TOTAL  4                         -      935   1  
    -      5   01-Apr-2002 to 31-Mar-2003   0     0  
    -      5   01-Apr-2003 to 31-Mar-2004   0     0  
    -      5   01-Apr-2004 to 31-Mar-2005   108   1  
    -      5   01-Apr-2005 to 31-Mar-2006   0     0  
    -      5   01-Apr-2006 to 31-Mar-2007   0     0  
    TOTAL  5                         -      108   1  
    -      6   01-Apr-2002 to 31-Mar-2003   0     0  
    -      6   01-Apr-2003 to 31-Mar-2004   99    1  
    -      6   01-Apr-2004 to 31-Mar-2005   216   0  
    -      6   01-Apr-2005 to 31-Mar-2006   0     0  
    -      6   01-Apr-2006 to 31-Mar-2007   0     0  
    TOTAL  6                         -      315   1  
    -      7   01-Apr-2002 to 31-Mar-2003   165   1  
    -      7   01-Apr-2003 to 31-Mar-2004   366   0  
    -      7   01-Apr-2004 to 31-Mar-2005   266   0  
    -      7   01-Apr-2005 to 31-Mar-2006   0     0  
    -      7   01-Apr-2006 to 31-Mar-2007   0     0  
    TOTAL  7                         -      797   1  
    -      9   01-Apr-2002 to 31-Mar-2003   0     0  
    -      9   01-Apr-2003 to 31-Mar-2004   9     1  
    -      9   01-Apr-2004 to 31-Mar-2005   99    0  
    -      9   01-Apr-2005 to 31-Mar-2006   0     0  
    -      9   01-Apr-2006 to 31-Mar-2007   0     0  
    TOTAL  9                         -      108   1  
    -      11   01-Apr-2002 to 31-Mar-2003  0     0  
    -      11   01-Apr-2003 to 31-Mar-2004  3     1  
    -      11   01-Apr-2004 to 31-Mar-2005  0     0  
    -      11   01-Apr-2005 to 31-Mar-2006  0     0  
    -      11   01-Apr-2006 to 31-Mar-2007  0     0  
    TOTAL  11                        -      3     1  
    -      12   01-Apr-2002 to 31-Mar-2003  0     0  
    -      12   01-Apr-2003 to 31-Mar-2004  248   1  
    -      12   01-Apr-2004 to 31-Mar-2005  365   0  
    -      12   01-Apr-2005 to 31-Mar-2006  365   0  
    -      12   01-Apr-2006 to 31-Mar-2007  10    0  
    TOTAL  12                         -     988   1  
    -      21   01-Apr-2002 to 31-Mar-2003   0    0  
    -      21   01-Apr-2003 to 31-Mar-2004   0    0  
    -      21   01-Apr-2004 to 31-Mar-2005   0    0  
    -      21   01-Apr-2005 to 31-Mar-2006   0    1  
    -      21   01-Apr-2006 to 31-Mar-2007   0    0  
    TOTAL  21                         -      0    1   I want that Free-days should be calculated in the following way:
    1. The number of free-days for each team would be calculated by the taking the difference between the end-date of the previous match and the start date of the current match.
    2.If there is no previous match or the current match is the first match of the respective team in that 12-month period then the number of free-days would be calculated by taking the difference between the start date of that respective period (say 1-Apr-2002) and the start date of the current match. For example, Team = 21 played its first and only match in the 12-month period (01-Apr-2005 to 31-Mar-2006) from 14-19 OCT-,2005. So for this team the number of free days in this period would be 196 days (from 1-Apr-05 to 13-Oct-05) before this match and since no further match is played by this team in that period so the free days (163) from 20-Oct-2005 till 31-Mar-2006 (period end) would also come into this period. Hence the total number of free days by team = 21 in this period would be 196 + 163 = 359 days. The six-week gaps were two for this team in this period. Similary, for Team = 1 in the period from 1-April-2002 to 31-mar 2003, it played it first match from 03-07 OCT, 2002. Its free days for that period currently shown are 140 but
    they should be 325 (140 + 185 days ==> from 1 April 2002 to OCt 2, 2002).
    3. If a team plays its last match in any period well before end period say by Jan 6, 2007, then the period from Jan 7 to March 31, would also be counted in the free days. If the current date or SYSDATE is less then March 31, 2007, then the free-days would be counted from Jan 7 to current date or SYSdate.
    4. If a team played no match in any period then the total number of days in that period would come as free days and this would count as only 1 six-week gap in that period.
    5. If the free days overlaped a 12-month period then the number of free days that came till the end of the period break point would come into the preceding period and the remaining number of free days would come in the next 12-month period. For exmaple, a team played a match from 01-MAY-94 to 05-MAY-1994 and then played its next match on 01-APR-1999 to 05-APR-1999. So the number of free days between 06-MAY-1994 TO 31-MAR-1999 are 1791 days. (This condition is already well done by your current query). Lastly, for an overlaping gap (over 2 or more periods), the frequency of atleast six-weeks would only come in the period from where the six-week gap started.
    I would prefer results in the format below. The free-days gaps in each period are breaked-up into actual gaps, showing the start and end date of the gap and the number of days and the "1" if the gap is of atleast 42 days. the first line of each period shows the sum of the total number of playing days between that period, sum of free days for each period and the sum of six-weeks for that period.
    TOT   TEAM PERIOD                     Playing_days  FREEDAYS   EXISTS_SIX_WEEK_GAP  
    -      1   01-Apr-2002 to 31-Mar-2003    40             325        2
                  01-Apr-02 to 02-OCT-02                    185        1
                  08-OCT-02 to 10-OCT-02                      3        -
                  16-OCT-02 to 18-OCT-02                      3        -
                  24-OCT-02 to 06-NOV-02                     14        -
                  12-NOV-02 to 20-NOV-02                      9        -
                  26-NOV-02 to 28-NOV-02                      3        -
                  04-DEC-02 to 25-DEC-02                     22        -
                  31-DEC-02 to 01-JAN-03                      2        -
                  07-JAN-03 to 31-Mar-03                     84        1
              01-Apr-2003 to 31-Mar-2004     70             296        4
                  01-Apr-03 to 09-Apr-03                      9        -
                  15-APR-03 to 18-APR-03                      4        -    
                  24-APR-03 to 30-APR-03                      7        -    
                  06-MAY-03 to 17-JUL-03                     73        1    
                  23-JUL-03 to 24-JUL-03                      2        -    
                  30-JUL-03 to 08-OCT-03                     71        1    
                  14-OCT-03 to 16-OCT-03                      3        -    
                  22-OCT-03 to 03-DEC-03                     43        1    
                  09-DEC-03 to 11-DEC-03                      3        -    
                  17-DEC-03 to 25-DEC-03                      9        -    
                  31-DEC-03 to 01-JAN-04                      2        -    
                  07-JAN-04 to 07-MAR-04                     61        1    
                  13-MAR-04 to 15-MAR-04                      3        -    
                  21-MAR-04 to 23-MAR-04                      3        -    
                  29-MAR-04 to 31-Mar-04                      3        -
              01-Apr-2004 to 31-Mar-2005     
              01-Apr-2005 to 31-Mar-2006  
              01-Apr-2006 to 31-Mar-2007     
    Grand TOTAL                                       I hope everything would be clear this time too.
    Oscar, I am sorry for taking alot of your precious time. But I badly need to have this query in order to have the results for my huge data analysis.
    Kind regards
    Ramis

  • SQL Query between two dates

    Hi,
    Please could someone help me on how to write a query to retrieve the data between two dates.
    created_date format stored in the database column: 9/18/2007 11:34:03 AM
    I tried below but it didn't work
    select * from work_table where created_date beween '9/18/2007' and '03/29/2008'
    I get 'literal doesn't match format string'
    Thanks,

    date datatype is nls dependent -> folllows the nls_date_format database parameter setting inherited by your session.
    Making it short you'll be always safe if you
    select * from work_table where created_date beween to_date('9/18/2007','MM/DD/YYYY') and to_date('03/29/2008','MM/DD/YYYY')Having the time component included you must add + 1 - 1 / 24 / 60 / 60 (plus one day minus one second) to the upper limit if you want to include the last day as a whole
    *** not tested
    Regards
    Etbin

  • Working days between two date fields and Changing Factory Calendar

    Hi,
    I have to calculate working days between two date fields excluding the weekends and public holidays for Switzerland.
    I have written the routine using factory calender and its working fine except for two problems now:
    1. If any one of the date field is empty then teh rsult should be zero.
    2. And the below code is working from 1996 but my cleints wants it to work for years before 1996 as well.
    I also tried to change the Start date in SCAL for factory calendar but it says enter values between 1995 to 2020.
    I am new to ABAP. Please help me how i can achieve these for below code.
    DATA: IT_HOLIDAYS type TABLE OF ISCAL_DAY,
          IS_HOLIDAYS TYPE ISCAL_DAY.
    DATA: T_DATE TYPE SY-DATUM,
          P_DATE TYPE SY-DATUM.
    DATA : X_DATE(4) TYPE C.
    DATA: CNT TYPE I.
    REFRESH : IT_HOLIDAYS.
    CLEAR : IT_HOLIDAYS.
    T_DATE = SOURCE_FIELDS-/BIC/ZCCCHP812.
    P_DATE = SOURCE_FIELDS-/BIC/ZCCCHP810.
    CALL FUNCTION 'HOLIDAY_GET'
    EXPORTING
    HOLIDAY_CALENDAR = 'CH'
    FACTORY_CALENDAR = 'CH'
    DATE_FROM = P_DATE
    DATE_TO   = T_DATE
    TABLES
    HOLIDAYS = IT_HOLIDAYS
    EXCEPTIONS
    FACTORY_CALENDAR_NOT_FOUND = 1
    HOLIDAY_CALENDAR_NOT_FOUND = 2
    DATE_HAS_INVALID_FORMAT = 3
    DATE_INCONSISTENCY = 4
    OTHERS = 5.
    DESCRIBE TABLE IT_HOLIDAYS LINES CNT.
    X_DATE = T_DATE - P_DATE - CNT.
    RESULT = X_DATE.
    Please help
    Regards
    Zabina
    Edited by: Syed786 on Nov 2, 2011 9:15 AM

    Hi Zabina,
    Try this function module  'DURATION_DETERMINE'.
    Give the factory calendar and unit as DAY
    With regards,
    Rajesh

  • How to calculate the month difference between two date char. in Query?

    Customers would like to see how many months passed between two date type of characteristics (e.g., the month difference between the current date and the scheduled delivery date in the record) and put the result into the column as KF. 
    We would have to grab the fiscal year/period kind of value and then do the subtraction, e.g., if the current date value is 2/28/2008 and the scheduled delivery date value in the record is 12/01/2007, the correct result should be 2 month difference between these two date values, but could someone here give us the technical light on how to make this happen in query design?
    Thanks and we will give you reward points for the correct anwsers!

    Hi Kevin,
    The Badi is RSR_OLAP_BADI.
    You can create an implementation using Transaction  SE18.
    The implementation is per cube and is defined in the filters.
    In the Implementation you have the following methods :
    1. Define : Here you will provide the Keyfigure you need as a virtual one.
    2. Initilialize : Any Init Function you want to do.
    3. Compute. This is called per datarecord and here you can cimpute your value.
    Hope this helps.
    Pralay Ahluwalia

  • How can I share data between two forms on different lists

    Using a custom content type, I created two lists that I want to share the same data - one is a calendar.  Our employees complete a form from the "Out of Office Request" list that has workflow functionality that sends an email to that person's
    manager.  If the manager approves the request, the item automatically populates the "Out of Office Calendar."  The problem is that the only information from the request list that populates the calendar is the Title field and date/time fields. 
    I need the manager name in order to create a view for each manager.  
    How can I connect the other information in the request list to the calendar list.  It seems to me that if the title and date fields carry over the information, there should be a way to connect the other information.  I'm using Designer.
    I've tried to connect the two lists' webparts with the wizard, but when I get to the page that maps the two lists, there are no column names and the "Next >" button is grayed out.  This seems like the logical place to connect the two lists,
    but it isn't working.

    Hi,
    According to your post, my understanding is that you wanted share data between two forms on different lists.
    To show external  information on the calendar event, there are two methods: Calculated column, workflow. You can refer to:
    A Simple Guide to Show More Information on a Calendar Event
    I recommend to use workflow to achieve what you want. But you need to create a people column to display the manager.
    You can create a workflow associated to the "Out of Office Request" list, add action to Start Approve Process. If the manager approves the request, you can create a item in the calendar, and then update the people column and the title column.
    Then the calendar will display the Title, date/time and the manager.
    To create a view for each manager, you need to modify the Filter. You can use the people column is equal to the manager name or the Title contains the manager name.
    Thank you for your understanding.
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • Different ways to copy data between two schemas in one instance

    Hi there,
    I am searching a good way to copy data between two schemas in the same instance.
    Both schemas have an identical structure such as triggers, tables, views and so on. The only difference is the purpose: one is the productivity system and one is for development.
    I looked at datapump but I do not explicit want to export / import. I want to keep the data in the productivity schema as well as copy it to the other schema. Any ideas? I found out there is a copy statement but I dont't know how that works.
    Thank you so far,
    Jörn

    Thank you for your replies!
    I also thought of creating a second instance for development and move the dev - schema to it. I just don't know whether our server can handle both (performance?). Anyway the idea is to have a possibility to quickly rebuild the data inside a schema without indixes or triggers, just pure data. I thought the easiest way would be to copy the data between the schemas as they are exactly the same. However if you tell me DataPunp is the best solution i won't deny using it :).
    When you export data a file is created. does that also mean that the exported data is deleted inside the schema?
    best regards
    Jörn
    Ps: Guido, you are following me, aren' t you? ;-)

  • As to the data type of the data type of the difference between two date type of datas

    Hi,
    I have a question about the data type of the difference between two date type of datas.
    There are two date type of datas as:
    SSHIPMENTS.RECEIVEDATETIME
    SSHIPMENTS.PROMISEDATETIME
    I try to use the following SQL Script in Oracle SQL*Plus as:
    SELECT CASE
    WHEN (SSHIPMENTS.RECEIVEDATETIME - SSHIPMENTS.PROMISEDATETIME) < '000 01:00:00.000' THEN 'OnTime'
    WHEN (SSHIPMENTS.RECEIVEDATETIME - SSHIPMENTS.PROMISEDATETIME) < '000 01:30:00.000' THEN '60-89 Minutes'
    ELSE '3+ Hours'
    END
    FROM SSHIPMENTS;
    The error message of "Invalid Number" for the '000 01:30:00.000' happens.
    I don't know if the data type of the interval is wrong.
    Many Thanks,
    Cathy

    SELECT CASE
    WHEN (to_char(SSHIPMENTS.RECEIVEDATETIME,'hhmiss') - to_char(SSHIPMENTS.PROMISEDATETIME,'hh24miss')) < '010000' THEN 'OnTime'
    WHEN (to_char(SSHIPMENTS.RECEIVEDATETIME,'hhmiss') - to_char(SSHIPMENTS.PROMISEDATETIME,'hh24miss'))< '000 01:30:00.000' THEN '60-89 Minutes'
    ELSE '3+ Hours'
    END
    FROM SSHIPMENTS;
    just try it out..

Maybe you are looking for

  • Payload Variables in Profile Manager (iOS)

    Hi There! I successfully installed a Lion Server with Profile Manager and am able to manage iOS devices. Now I tried to setup E-Mail Profiles/Payloads. To test the variable functionality I added a Webclip to a php-script that simply displays me the c

  • Using Planning with FDQM, where are the essbase adaptors?

    Hi, I have EPM system version 11 installed, and have been working with Planning. I do not know much about Financial Data Quality Management, but would like to explore its capabilities and use it with Planning. I have created a new FDM application fol

  • [SOLVED] vim can't use colorscheme from ~/.vim/colors

    Hello I wanted to use the Molokai Theme for vim. So I downloaded molokai.vim from http://www.vim.org/scripts/script.php?script_id=2340 Copied it to ~/.vim/colors folder. In vim I enter :colorscheme molokai.vim but it can't find it. Also install molok

  • Raw RTP forward

    Hi! How can I forward Raw RTP Stream from ip:port to anotherip:anotherport with the smallest resource? I want to write a VOIP forwarder application. a <-> server <->b The server not parse or transcode the stream only forward but if I do with Datagram

  • Receiving mail on old computer and new computer

    I gave my old G4 to my father and bought myself a new imac however i noticed that my dad has access to my .mac account on my old G4. How can I stop my dad from getting my email without messing up me receiving emails on my new imac?