Number of Saturdays between two dates
Hello
How can I get number of Saturdays between two dates, including the two dates?
for example number of Saturdays between 09/05/2014 and 10/05/2014 is five
Help, please
I use oracle 10g
SQL> with t 2 as 3 ( 4 select to_date('05/09/2014 ', 'dd/mm/yyyy') from_dt 5 , to_date('05/10/2014 ', 'dd/mm/yyyy') to_dt 6 from dual 7 ) 8 select to_char(from_dt + (level-1), 'fmDay') day_ 9 , count(*) cnt 10 from t 11 connect 12 by level <= to_dt - from_dt + 1 13 group 14 by to_char(from_dt + (level-1), 'fmDay'); DAY_ CNT --------- ---------- Saturday 5 Thursday 4 Tuesday 4 Friday 5 Wednesday 4 Monday 4 Sunday 5 7 rows selected. SQL>
Tags: Database
Similar Questions
-
Dynamic calculation of the number of days between two dates in a table
Hello
I'm working on request where I dynamically calculate the number of days between two dates in a table.
The calculation must be dynamic, i.e., when I recover the Start_date and End_date and move to the field following (call_duration) in the same row, the difference must be calculated dynamically in this area and make sure the field read-only.
APEX version: 5.0
Hi BO123,
BO123 wrote:
Hello
I'm working on request where I dynamically calculate the number of days between two dates in a table.
The calculation must be dynamic, i.e., when I recover the Start_date and End_date and move to the field following (call_duration) in the same row, the difference must be calculated dynamically in this area and make sure the field read-only.
APEX version: 5.0
one of the way to do this by calling ajax on change of end_date.
See the sample code given below to fetch the resulting duration and making the field read only after calculation
Step 1: Change your page
under CSS-> Inline, put the code below
.row_item_disabled { cursor: default; opacity: 0.5; filter: alpha(opacity=50); pointer-events: none; }
Step 2: Create on demand Ajax process I say CALC_DURATION
Please check Procces Ajax, see line 6.7 How to assign a value to the variable sent by ajax call
Declare p_start_date date; p_end_date date; p_duration number; Begin p_start_date := to_date(apex_application.g_x01); p_end_date := to_date(apex_application.g_x02); --do your calculation and assign the output to the variable p_duration select p_end_date - p_start_date into p_duration from dual; -- return calculated duration sys.htp.p(p_duration); End;
Step 3: Create the javascript function
Change your page-> the function and the declaration of the Global Variable-> put the javascript function
You must extract the rowid in the first place, for which you want to set the time, see line 2
assuming f06, f07 and f08 is the id of the start date, and end date columns respectively, and duration
See no line no 8 how set the value returned by the process of ajax at the duration column
Replace your column to the respective column identifiers in the code below
function f_calulate_duration(pThis) { var row_id = pThis.id.substr(4); var start_date = $('#f06_'+row_id).val(); apex.server.process ( "CALC_DURATION", { x01: start_date,x02: $(pThis).val() }, { success: function( pData ) { // set duration to duration column $('#f08_'+row_id).val(pData); // disable duration column $("#f08_" + row_id).attr("readonly", true).addClass('row_item_disabled'); } }); }
Step 4: choose the end date call the javascript function
Go to report attributes-> edit your Date column end-> column-> Attrbiutes element attributes-> put the code below
onchange="javascript:f_calulate_duration(this);"
hope this helps you,
Kind regards
Jitendra
-
Number of weeks between two dates that are in the same or different year
Hello
How to calculate the number of weeks between two dates?
for example. "" "17-mar-2013' and June 27, 2013" or June 15, 2013 "and" 25-mar-2014
Thanks in advance.
lukx
Hello
Looks like your date range is incorrect.
Please try the below.
SQL >-front right
SQL > select D2 - D1 "days."
2 round ((D2-D1)/7.0) "weeks."
3 round (Months_between (d1, d2), 0) 'months '.
(select 4
5 TO_DATE ('20121201', 'YYYYMMDD') D1, D2 TO_DATE ('20130116', 'YYYYMMDD')
6 from two
(7) date_range;
Elapsed days weeks months
------------ --------- ---------
46 7 1
-
JavaScript anomaly on the number of days between two dates
Use ApEx 4.0, I found an anomaly in a javascript code that calculates the number of days between two dates, the current_date and the past_date. If the past and present is the or before March 10, 2013, and the current_date lies between 10 March 2013 and November 3, 2013, the number of days will be from 1 day to less than the actual number. Between November 3, 2013 and on 4 November 2013, the increments of number by 2, then the count will be accurate from this date forward.
Here are some examples:
March 10, 2013 = 69 days of December 31, 2012
March 11, 2013 = 69 days of December 31, 2012
March 12, 2013 = 70 days of December 31, 2012
November 3, 2013 = 306 days in December 31, 2012
November 4, 2013 = 308 days in December 31, 2012
11 March should be 70 and 12 March should be 71. November 3 is 307 and 4 November corrects the number of fake, which began March 11.
Change the past_date to March 10, 2013 produces the following:
March 10, 2013 = 0 days of March 10, 2013
March 11, 2013 = 0 days of March 10, 2013
March 12, 2013 = 1 days of March 10, 2013
But change the past_date to 11 March 2013, product of the correct numbers:
March 11, 2013 = 0 days of March 11, 2013
March 12, 2013 = 1 days of March 11, 2013
March 13, 2013 = 2 days of March 11, 2013
I would certainly all help to determine the cause of this anomaly. Here's the javascript code:
var w1 = ($v ("P48_PAST_DATE"));
W1 = (w1.toString ());
vmon var = (w1.substr (3.3));
vyr var = (w1.substr (7));
var r = (vyr.length);
If (r == 2)
vyr. = (parseFloat (vyr) + 2000);
vday var = (w1.substr (0.2));
var y = (vmon.concat ("", vday, ",", vyr));
y = Date.parse (y);
var w2 = ($v ("P48_CURRENT_DATE"));
var vmon2 = (w2.substr (3.3));
var vyr2 = (w2.substr (7));
var vday2 = (w2.substr (0.2));
var x = (vmon2.concat ("", vday2, ",", vyr2));
x = Date.parse (x);
var numdays = (x - y);
numdays = (Math.floor(numdays / 86400000));
$s ("P48_NUMBEROFDAYS", numdays);Did you google for something like "javascript number of days between two dates. I think you will find the explanation to this observation:
This method does not work correctly if there is an advanced economies jump between the two dates.
There are examples available to calculate the difference between two dates.
-
Calculate the number of days between two dates
Hello
Can someone help please change my formcalc script to calculate the number of working days between two date fields. My script currently calculates the total number of days between two dates, including the weekends which must be excluded from the total.
If
(HasValue (Start_Date1) & HasValue (End_Date1)) then
$
= Date2Num (End_Date1, "YYYY-MM-DD" "en_IE") - Date2Num (Start_Date1, "YYYY-MM-DD" "en_IE") + 1
on the other
""
endif
Any help will be most appreciated.
Thank you.
Check...
(1) you said that you put the script on the event «days1» calculate My sample imitates the variable names used in the original message, "Start_Date1" and "End_Date1". If the names of variables for the start and end dates are different, you will need to modify the script to account for these names.
(2) the Date2Num functions in the calculation of the "totalDays" use the date format "YYYY-MM-DD". If your date habits differ from "YYYY-MM-DD" FormCalc will complain.
Steve
-
Dynamically calculate the number of days between two dates and amounts of split
Hello
I have searched for a solution for this, but had no success.
I need to show the amounts broken down by days.
I have a table that has an amount column and start and end dates.
I need to write a query so that the amounts will be broken evenly based on the number of days between the start date and end date.
For example, for this line.
insert into my_test values (' 1, '' 3-mar-2010, ' 7 - mar - 2010 ", 1000);
the query returns this (split $1,000 over 5 days)
ID Date amount
1 ' 3-mar-2010' 200,00
1 ' 4-mar-2010' 200,00
1 ' 5-mar-2010' 200,00
1 ' 6-mar-2010' 200,00
1 ' 7-mar-2010' 200,00
create table my_test)
ID number (10),
start_date date,
End_date date,
amount number (10.2)
);
Select * from my_test
insert into my_test values (' 1, '' 3-mar-2010, ' 7 - mar - 2010 ", 1000);
insert into my_test values (2, 10-mar-2010 ", 19-mar-2010", 2000);
insert into my_test values (3, 20-mar-2010 ',' 21-mar-2010, 5000);
Thanks in advance.Hello
One way is to join a Meter of Table , a table, or (more often) a set of results includes a line for eery number 1, 2, 3,... until the maximum number of times you need to divide a line.
For example:WITH cntr AS ( SELECT LEVEL - 1 AS n FROM ( SELECT MAX (end_date - start_date) AS max_day_cnt FROM my_test ) CONNECT BY LEVEL <= 1 + max_day_cnt ) SELECT t.id , t.start_date + c.n AS dt , t.amount / (t.end_date + 1 - t.start_date) AS amt FROM my_test t JOIN cntr c ON c.n <= t.end_date - t.start_date ORDER BY id , dt ;
This assumes that all dates have the same number of hours, minutes, and seconds, as is the case in your sample data.
If this isn't the case, then use TRUNC (start_date) and TRUNC (end_date) instead of start_date and end_date or post some sample data and results if some lines do not represent a whole number of days. -
Number of records between two dates which lasted more than a minute
I need to count the number of events/records in a single table with the dates of appointment and for how long the appointments in another table, I have two cells to hold dated (start and end dates) give a range. I want to count the number of appointments that lasted more than a minute falling into the test range.
I am sure that this is COUNTIFS and I tried to make it work.
Hope you can help.
Thank you
You could do something like that
The data table on the left and are named "Data."
Data in the table on the right. Enter the Start Date, end Date and time Min.
D2 = COUNTIF (Data::B, "> =" & C2, Data::A, "> =" & A2, Data::A,")<>
It's abbreviation dethrone select cell D2, and then type (or Coptic and paste here) the formula:
= COUNTIFS(Data::B, ">="&C2, Data::A, ">="&A2, Data::A, ")<>
-
Number of days between two Dates in the Correct month
I am trying to write a SELECT statement that returns the number of days spent on a project.
Here's my problem. I have a table with several columns of date (start_date, end_date, etc.) as well as several other columns. Here is an example of the table.
PROJECT... START_DATE... END_DATE
123 ................. 1ST JANUARY 13... 15 JANUARY 13
456 ................. 25 JANUARY 13... FEBRUARY 5, 13
789 ................. 30 JANUARY 13... FEBRUARY 5, 13
999 ................. 1ST FEBRUARY 13... FEBRUARY 8, 13
I'm counting the number of days spent on projects in each month. For example, with the above data, I would come back...
MONTHS... PROJECT_DAYS
Jan ............. 24
Feb ............. 18
I tried to use a CASE statement, but I'm having a hard time to understand. Any help would be greatly appreciated!
Published by: 987079 on February 8, 2013 13:12An option would be something like
1 with project as ( 2 select 123 project_id, date '2013-01-01' start_date, date '2013-01-15' end_date from dual union all 3 select 456, date '2013-01-25', date '2013-02-05' from dual union all 4 select 789, date '2013-01-30', date '2013-02-05' from dual union all 5 select 999, date '2013-02-01', date '2013-02-08' from dual 6 ), 7 all_days as ( 8 select start_date + level - 1 dt 9 from (select min(start_date) start_date, 10 max(end_date) end_date 11 from project) 12 connect by level <= end_date - start_date + 1 13 ) 14 select trunc(dt,'MM'), 15 count(*) 16 from all_days ad 17 join project p on (ad.dt between p.start_date and p.end_date) 18 group by trunc(dt,'MM') 19* order by trunc(dt,'MM') SQL> / TRUNC(DT,'MM') COUNT(*) ------------------- ---------- 2013-01-01 00:00:00 24 2013-02-01 00:00:00 18
Justin
-
County of days between two dates without weekend
Hello
I need a solution in the query or another thread, which returns the number of days between two dates without considering the weekend (Saturday and Sunday), I have a column of type Date, and return need in the form of a column HH hours and days in another column.
Concerning
JonasHi and welcome to the forum.
Don't forget you can do a search on this forum.
Your question has been asked before.Some other tips:
http://asktom.Oracle.com/pls/asktom/asktom.download_file?p_file=6551242712657900129
http://asktom.Oracle.com/pls/asktom/f?p=100:11:0:P11_QUESTION_ID:185012348071 -
Calculate the (age) years between two dates
Nice day!
I have not been able to find an answer, that I was able to use in the archives or online and would be very grateful for the help. I'm working with Adobe Acrobat Pro XI (not LiveCycle) and I have very little experience with programming (for the most part, copy / paste).
I need to create a text box that calculates the number of years between two dates entered, i.e. the age when the date of birth and death are given. Also, would be nice if she was a Virgin until the two were provided. Anyone would be able to give me the code I need to put in the custom calculation script?
Once again, any help would be much appreciated! Thank you and have a wonderful day!
For the fields for Date of birth DOB and DOD for the Date of death and age in complete years both by using a'd-mmm-yyyy' date format you can use a custom calculation to the JavaScript for the field of age as:
function GetField (cName) {}
get the field with error trapping object;
oField var = this.getField (cName);
test error;
if(oField == null) app.alert ("error during the" + cName, 1, 0);
Returns the field object;
return oField;
} / / end GetField function;function {Scand (cFormat, cString)
using date string format convert object date;
convert string to date using format;
Kai var = util.scand (cFormat, cString);
the value null is an error of conversion;
if(oDate == null) app.alert ("Conversion error" cString "by using the format" + cFormat, 1, 0);
date of return;
Return to oDate;
} / / end Scand function;clear the value of the field;
Event.Value ="";
get data dob and dod;
var oDOB = GetField ("DOB");
Var o = GetField ("DOD");treat only if DOB and DOD have value and are not null;
If (oDOB! = null & o! = null & oDOB.value! = "" & oDOD.value!) = "") {}convert the DOB and DOD to date objects.
oDOB var = util.scand ("d-mmm-yyyy", oDOB.value);
O var = util.scand ("d-mmm-yyyy", oDOD.value);get the difference over the years;
var Age = oDOD.getFullYear () - oDOB.getFullYear ();adjust for month of previous DOD DOB;
If (oDOD.GetMonth)< odob.getmonth())="">adjust the DOD before DOB date in the month of birth;
If (oDOD.GetMonth () == oDOB.getMonth () & oDOD.getDate ())< odob.getdate())="">
Set the value of the field;Event.Value = Age;
} -
Calculate business hours between two dates in a cursor
Hello, its me again (?).
Yesterday, I got a solution to a problem here where I need to calculate the hours between two dates, excluding Sat/Sun and from 09:00 to 18:00. I'm now putting this login in a PL/SQL block, so I can calculate it for each record in a slider, all by looping.
The logic above, I'm up here:with t (start_date ,end_date ) as (select to_date('22-oct-2012 09:00:00','dd-mon-yyyy hh24:mi:ss') start_dt, to_date('23-oct-2012 09:00:00','dd-mon-yyyy hh24:mi:ss') end_dt from dual ) , hrs (dt) as (select start_date from t union all select dt +1/24/60 from hrs where hrs.dt < (select end_date-1/24/60 from t) ) select count(*)/60 from hrs where to_char(dt,'dy') not in ('sat','sun') and to_number(to_char(dt,'hh24')) not between 18 and 23 and to_number(to_char(dt,'hh24')) not between 0 and 8 /
I really don't like if the performance is horrible because it will run once a month and should spend only 40-100 records.FOR c_record IN c_1 LOOP //For each record, check if the two dates meet the criteria and then raise the counters accordingly select to_date(c_record.REPORTADA,'dd-mon-yyyy hh24:mi:ss') INTO vFch1 FROM DUAL; SELECT to_date(c_record.INICIOREAL,'dd-mon-yyyy hh24:mi:ss') INTO vFch2 FROM DUAL; IF ((vHoras > 2) AND c_record.PRIORIDAD=3) THEN vContOk :=vContOk + 0; vContBad := vContBad+1; vContOt := vContOt+1; ELSE vContOk :=vContOk +1; vContBad := vContBad+0; vContOt := vContOt+1; END IF; IF ((vHoras > 4) AND c_record.PRIORIDAD=2) THEN vContOk :=vContOk + 0; vContBad := vContBad+1; vContOt := vContOt+1; ELSE vContOk :=vContOk +1; vContBad := vContBad+0; vContOt := vContOt+1; END IF; IF ((vHoras > 16) AND c_record.PRIORIDAD=1) THEN vContOk :=vContOk + 0; vContBad := vContBad+1; vContOt := vContOt+1; ELSE vContOk :=vContOk +1; vContBad := vContBad+0; vContOt := vContOt+1; END IF; END LOOP;
However, I can't find a way to use this connection even in this case
Could you help me?
Thank you!
Greetings,
NACEURN wrote:
I need to calculate the number of minutes between two dates, only count the hours from 9 to 18hs.CREATE OR REPLACE FUNCTION get_bus_minutes_between( p_start_date DATE, p_end_date DATE ) RETURN NUMBER IS v_return NUMBER; BEGIN with t as ( select case level when 1 then greatest(p_start_date,trunc(p_start_date) + 9 / 24) else trunc(p_start_date) + level - 15 / 24 end start_dt, case connect_by_isleaf when 1 then least(p_end_date,trunc(p_end_date) + 18 / 24) else trunc(p_start_date) + level - 8 / 24 end end_dt from dual connect by level <= trunc(p_end_date) - trunc(p_start_date) + 1 ) select sum(greatest(end_dt - start_dt,0)) * 24 * 60 work_minutes into v_return from t where trunc(start_dt) - trunc(start_dt,'iw') < 5; -- exclude weekends RETURN v_return; END; /
For example:
SQL> select get_bus_minutes_between( 2 to_date('20-oct-2012 13:00:00','dd-mon-yyyy hh24:mi:ss'), 3 to_date('22-oct-2012 13:21:00','dd-mon-yyyy hh24:mi:ss') 4 ) work_minutes 5 from dual 6 / WORK_MINUTES ------------ 261 SQL>
SY.
-
Count the number of hours between the dates off holiday/weekend
Hi all
I've not worked with dates and was recently asked to create a report where I am looking for the number of hours between two dates only count business days.
So for example I have given as follows
Created on 2011-03-30 15:00
Treaty of 2011-03-30 15:03:46
Filled 2011-04-01 17:25:02
Posted 2011-04-01 17:45
For a total of looking for the CREATION and dates
50 hours and 45 minutes
IM also trying to exclude weekends and holidays, I read around and was able to also find an array of dates where I main date, the HOLIDAY_IND column, and the column WEEKDAY_IND
If the calendar table I have looks like
CALENDER_DATE HOLIDAY_IND WEEKDAY_IND
2011-03-31 YY
2011-04-01 N Y
2011-04-02 N N
IM really very puzzled to know where to start
I thought I'd try to write with PL/SQL, but I don't have access of the user to create procedures/functions, so looks like right up to SQL
Any help is appreciated!Hello
Depeneding on your data and your needs, you can do something like this:
SELECT created_DATE, , mailed_date , 24 * ( (mailed_date - created_date) - ( SELECT COUNT (*) FROM table_o_dates WHERE main_date > created_date AND main_date < TRUNC (mailed_date) AND ( holiday_ind = 'Y' OR weekday_ind = 'N' ) ) ) AS hours_between FROM table_x ;
I hope that answers your question.
If not, post a small example of data (CREATE TABLE and only relevant columns, INSERT statements) for all tables and also post the results desired from these data.
Explain, using specific examples, how you get these results from these data.
Always tell what version of Oracle you are using.What do you do if created_date or mailed_date is not a working day? Examples in you data and results.
-
Behavior of days between two dates
Hello!
If anyone can help? ... with differences in Date? :
All I want is to calculate the number of days between two dates:
InitDate has been entered as 01/10/2010 planning, to recover is 20101001
HireDate was entered into the 1980-10-01 planning, to recover is 19801001
I tried
NumDays = @DATEDIFF (InitDate, HireDate, DP_DAY);
but give me only 0 and -1.
When I try the regular difference:
NumDays = InitDate - HireDate;
He returned to 30,000 (which in the example is 20101001-19801001) - which should not.
I use Essbase/Planning 11.1.1.2, I tried also to break dates in years and months using INT and operations, but when I want to get the calendar days he is ugly. The two dates live in the same block.
Someone at - it an idea?
Thank you very much!Hello
Here's a piece of code in my trunk of code which may help you. This assumes you have string CDF pack (https://www.samplecode.oracle.com/tracker/tracking/linkid/prpl1004/remcurreport/true/template/ViewIssue.vm/id/S441/nbrresults/9)var y1, y2, m1, m2, d1, d2, difx1, difx2;
FIX (SOLUTION YOUR MEMBERS HERE)
"BLOCK MEMBER")Y1=@round ("Date of 1" / 10000,0);
Y2=@round ("Date 2" / 10000,0);
M1=@round (("Date 1"-y1*10000)/100, 0);
M2=@round (("Date 2"-y2*10000)/100, 0);
D1 = ' Date of 1 "-(y1*10000+m1*100);"»
D2 = "Date 2"-(y2*10000+m2*100); "»difx1=@TODATEEX ("mm/dd/yyyy",
@JconcatStrings (@LIST (@JgetStringFromDouble (m2,@_false,@_false), ' / ', @JgetStringFromDouble (d2,@_false,@_false), ' / ', @JgetStringFromDouble (y2,@_false,@_false)))
)
) ;
difx2 = @TODATEEX ("mm/dd/yyyy", @JconcatStrings (@LIST)
@JgetStringFromDouble (m1,@_false,@_false), ' / '.
@JgetStringFromDouble (d1,@_false,@_false), ' / '.
@JgetStringFromDouble (y1,@_false,@_false))
)
);diff=@DateDiff (difx2, difx1, DP_DAY);
)
ENDFIXSee you soon,.
Alp -
days between two dates, excluding Saturday and Sunday
Hello
I have an obligation as: there are two entries in the query 1) startdate and 2) end date when the end user enter the start date and end date of the sql query to retrieve the number of days between given dates of beginning and end, and it should be retrivied with two condition 1) every Sunday between the above dates excluded 2) second and fourth Saturday of the month between the start dates and should be excluded.
example of start date: 01-May-09
end date: 16-May-09
release date: 13SELECT COUNT (*)
(SELECT TO_DATE('01-may-09') + LEVEL - dates 1)
OF THE DOUBLE
CONNECT BY LEVEL<= (to_date('16-may-09')="" -="" to_date('01-may-09'))="" +="" 1)="">=>
WHERE ((TO_CHAR (inner.dates, 'd') = 7
AND TO_CHAR(inner.dates, 'W') NOT IN (2, 4)
)
GOLD TO_CHAR (inner.dates, 'd.') not in (1.7)
); -
Number of occurrences of a day between two dates
Hello
I have a requirement in my code to count the number of times per day occurs between two dates. So, for example if
start date = January 1, 2014
end date = March 31, 2014
The number of times that happens day 1 is three times. That's why I want the result to be 3. My three input parameters are the number of the day, start and end dates. I know that this can be done by parsing through the days and incrementing a counter of sorts, but can it be done without any loop etc?
Looking for options of
Thank you
Birdy
SELECT COUNT (TO_CHAR (DAYS, 'DD')) IN)
SELECT DAYS START_DATE + LEVEL 1
FROM T1
CONNECT BY LEVEL<=>=>
WHERE TO_CHAR (DAYS, 'DD') ='&01';
Post edited by: Parth272025
Maybe you are looking for
-
Plug-ins to transfer to the new operating system
I create a dual boot PC with Win XP and Win 7. I have Firefox on my side XP with lots of plugins. Is it possible to load all plugins from my XP to my 7 without having to reload all the? Are all stored in a folder somewhere that I can copy just above?
-
I went through all the bandages above after receiving the following message "unable to connect". Firefox can't establish a connection to the server at www.msn.com. The site could be temporarily unavailable or too busy. Try again in a few moments. If
-
"helpasst.dll reinstall myDAQ".
Hi all I'm having some trouble with Labview recognizing the myDAQ I use. I used a front myDAQ on my laptop with zero problems, and when I tried to reconnect, my laptop would not install the drivers correctly. I then uninstalled all the software of NO
-
27 a XPS cannot update to the latest NVidia drivers
Hello! I have some GFX linked the issue to be resolved, and for that, should be update my GFX NVidia drivers latest version. The GFX card is a NVidia GeForce GT M 640 with drivers V. 295.55 on a Dell XPS One 27 i7. First of all, I went on NVIdia's w
-
What nonsense, the here! my printer refuses to print black and white, pages saying that the yellow ink is finished? only if I buy a wet ink yellow it will print. Isn't this black mail? What does take to print? I did print it in black, etc, but still