Problem with calculate difference between two dates on monday to saturday
Hello,
I need some help to edit a function tu return number of hours between to dates, including saturdays (09:00 - 14:00) and monday to friday (09:00-21:00);
This is my code;
CREATE OR REPLACE
FUNCTION TEST2( FECHA_INICIO DATE, FECHA_FIN DATE)
RETURN NUMBER IS HORASTOTALES NUMBER;
fecha date;
BEGIN
if(
SELECT fecha, to_char(fecha, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') Dia
FROM (SELECT to_date('FECHA_INICIO') + LEVEL - 1 fecha
FROM DUAL
CONNECT BY LEVEL <= (FECHA_FIN - FECHA_INICIO))
WHERE TO_CHAR(FECHA, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') not IN ('SAT') THEN
with t as (
SELECT CASE LEVEL
when 1 then greatest(fecha_inicio,trunc(fecha_inicio) + 9 / 24)
else trunc(fecha_inicio) + level - 15 / 24
end fecha_inicio,
case connect_by_isleaf
when 1 then least(fecha_fin,trunc(fecha_fin) + 21 / 24)
else trunc(fecha_inicio) + level - 3 / 24
end fecha_fin
from dual
connect by level <= trunc(fecha_fin) - trunc(fecha_inicio) + 1 )
select sum(greatest(fecha_fin - fecha_inicio,0)) * 24 horas
into horastotales
FROM T
WHERE TRUNC(FECHA_INICIO) - TRUNC(FECHA_INICIO,'iw') < 5 ;
RETURN HORASTOTALES ;
) ELSE IF
return HORASTOTALES+5;
END;
regards
Ok, let's try this one then. it works as a function, and if you extract the query, it can work as a single cursor too.
create or replace function test2( p_start_date date, p_end_date date) return number
is
t_result number;
begin
with firstday as ( select case to_char(p_start_date,'fmdy','NLS_DATE_LANGUAGE=ENGLISH')
when 'sun' then 0
when 'sat' then 9-least(14,to_char(p_start_date,'hh24'))
else 9-least(21,to_char(p_start_date,'hh24'))
end day
from dual ),
alldays as (select sum(case to_number(to_char(p_start_date+level-1,'d'))
when 1 then 0
when 7 then 5
else 12
end) days
from dual
connect by level <= p_end_date - p_start_date + 1),
lastday as ( select case to_char(p_end_date,'fmdy','NLS_DATE_LANGUAGE=ENGLISH')
when 'sun' then 0
when 'sat' then -14+least(14,to_char(p_end_date,'hh24'))
else -21+least(21,to_char(p_end_date,'hh24'))
end day
from dual )
select sum(t1.day+t2.days+t3.day)
into t_result
from firstday t1
, alldays t2
, lastday t3;
return t_result;
end;
Similar Messages
-
Calculate difference between two dates/times
Hi all,
Is there any function module to calculate difference between two dates/times which are in TIMESTAMPL format.
I need to know how many millisconde(second,minutes, hours... )there is between these two times.
Please, It is urgent
Thank you all.
Karimhi,
try the following function
CALL FUNCTION 'CCU_TIMESTAMP_DIFFERENCE'
EXPORTING
timestamp1 = timestamp1
timestamp2 = timestamp2
IMPORTING
difference = diff
EXCEPTIONS
OTHERS = 1.
the above function gives the difference in seconds...
try the following code to set the resolution to milliseconds..
SET RUN TIME CLOCK RESOLUTION LOW
check the thread for details:
SET RUN TIME CLOCK RESOLUTION?
all the best!!!
Regards,
Aparna -
Calculate the difference between two dates times in infopath form 2013
Hi,
I have an infopath 2013 form that contains three fields:
2 date time and the 3rd contains the difference between the two in hours
how I can make the difference between the two so that the display will be like this:
Date Time1 08/21/2014 22:00
Date Time2 08/22/2014 1:00
Diff Field 3:00Hi,
Please refer to the following article which matches your requirement exactly.
Calculate the difference between two date picker controls in InfoPath using rules and formulas - no code!
Please mark it answered, if your problem resolved. -
Calculate the difference between two dates
I would like to calculate the difference between two dates in PL/SQL and return the result as a number of days expressed as an integer value.
Denes,
A fair point, I should really have posted this on the SQL forum (I'm new to the forum as well as PL/SQL) but thanks for responding anyway. It does raise a question as to how to implement this in ApEx though.
I have created the function and am calling it as shown below from the source window of a form. The source type is 'PL/SQL expression or function' and the expression in the source window of the form is:
calc_date_difference (:p26_c_payment, :p26_c_rec)
The two parameters being passed are of type date but I'm not sure how to handle the ruturned number and populate the form in ApEx with this value.
Is it possible to do it this way or am I taking completely the wrong approach?
Regards
Sandy
This is not ApEx related but SQL related:
CREATE OR REPLACE FUNCTION calc_date_difference (
p_date_1 VARCHAR2,
p_date_2 VARCHAR2
RETURN NUMBER
v_difference NUMBER;
v_sql_err VARCHAR2 (4000);
BEGIN
v_difference := TRUNC (TO_DATE (p_date_1)) - TRUNC
(TO_DATE (p_date_2));
RETURN v_difference;
CEPTION
WHEN OTHERS
THEN
v_sql_err := SQLERRM || CHR (10) || CHR (10) ||
SQLCODE;
ND calc_date_difference;and
SQL> SELECT calc_date_difference ('23.01.2007',
'20.01.2007') diff
2 FROM DUAL;
DIFF
3
Denes Kubicek -
Calculate the Difference Between two dates excluding weekends and Holidays
Hi,
We need to calculate the difference between the two dates by excluding the Local public holidays (It is global and varies across countries) and weekends should not be included in calculation for a business day in OBIEE.
We have two dates: Open date and close date when ever close date is null we are calculating age based on taking the current timestamp and need to exclude the weekends and Holidays when ever the close date is null.
Ex:
Col1 col2 Total
11/9/2010 2:46:38 PM Null 13
11/2/2010 8:06:26 PM 11/3/2010 5:37:03 PM 1
(In the Total we shouldn't include the weekends,holidays)
Please let me know how to calculate the difference between two dates by excluding the weekends and holidays.
Thanks
Edited by: user10441472 on Nov 22, 2010 3:14 PMYou already asked this question and I answered it...
Re: calculation of Business day in OBIEE -
How to calculate the hour difference between two dates?
hi all,
how to calculate the hour difference between two dates?
eg i trying this...
((TO_DATE(TO_CHAR(GRNi.reference_date_4,'hh24:mi'),'hh24:mi') -
TO_DATE(TO_CHAR(NVL(GRNi.reference_date_3,SYSDATE),'hh24:mi'),'hh24:mi'))*24)*60 Act_Hr
Reg.
AAKHi
To break the diff between 2 dates into days, hours, minutes, sec -- you can use the following:
select to_char( created, 'dd-mon-yyyy hh24:mi:ss' ),
trunc( sysdate-created ) "Dy",
trunc( mod( (sysdate-created)*24, 24 ) ) "Hr",
trunc( mod( (sysdate-created)*24*60, 60 ) ) "Mi",
trunc( mod( (sysdate-created)*24*60*60, 60 ) ) "Sec",
to_char( sysdate, 'dd-mon-yyyy hh24:mi:ss' ),
sysdate-created "Tdy",
(sysdate-created)*24 "Thr",
(sysdate-created)*24*60 "Tmi",
(sysdate-created)*24*60*60 "Tsec"
from all_users
where rownum < 50
HTH
RangaReddy -
Hi
I have two date fields in the ODS..Both are characterists
1. Requested delivery date
2. Actual shipment end date.
I would like to create a calculated KF field for the difference between two dates in a query.
How can I accomplish it?
RegardsYou have to make Expiration data as nav attribute and create a formula variable then only this date can be used in calculations.
refer this How to...for the same
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/72f4a790-0201-0010-5b89-a42a32223ffc
later you can try to calculate difference between dates!
Re: calculating the difference between two dates
Please search in forum with 'difference between two dates'.You will find lots of good posts on this issue!
hope this helps
Regards -
Difference between two dates into server behaviors
Good morning all,
I'm trying to create a recordset using server behaviors and as I'm not an expert using php I'm completely lost...
The problem is the following : I want to find into a table all the records where the difference between today date and their creation date (stored in that table of course) is greater than, let's say 30days. How can I indicate that into the variables field ?
Many thanks in advance for your help !Many thanks !
I was ignoring the DATE_SUB function and it does work in such a simple way… (with a closing parenthesis at the end)
Thanks again !
Best regards
De : osgood_ [email protected]
Envoyé : lundi 16 septembre 2013 15:59
À : Berurier75
Objet : Difference between two dates into server behaviors
Re: Difference between two dates into server behaviors
created by osgood_ <http://forums.adobe.com/people/osgood_> in Dreamweaver support forum - View the full discussion <http://forums.adobe.com/message/5685549#5685549 -
Date difference between two dates
hi All,
i have to right a stored proc to find the difference between two dates.
for example of i give
startdate as 4/1/2015 and enddate 14/1/2015
i should get 1 year , 10 days and 0 months .
i have tried the DateDiff function but it does not calculate the leap year.
please help.DECLARE @from datetime
DECLARE @to datetime
SET @from = '20150104 8:00'
SET @to = '20150114 10:30'
SELECT DATEDIFF(minute,@from, @to) % 60 as Minutes
SELECT (DATEDIFF(minute,@from, @to) / 60) % 24 as Hours
SELECT DATEDIFF(minute,@from, @to) / (60 * 24) as Days
SELECT DATEDIFF(month,@from, @to) as Months
SELECT DATEDIFF(year,@from, @to) as Year
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence -
Java code to get the difference between two dates in days
Hi ppl,
I need to write a user defined function to get the difference between two date nodes, in days.Please help me out
regards,
PrashanthHi,
have a look at those two:
(How do I calculate the difference between two dates?)
http://joda-time.sourceforge.net/faq.html
Calculating the Difference Between Two Datetime Stamps
http://www.xmission.com/~goodhill/dates/deltaDates.html
Get difference in days
http://javaalmanac.com/egs/java.util/CompDates.html
Regards,
michal -
Difference between Two Date Should come into Text Item
Dear All,
i want to get difference between two date into text Item :P36_C in On Change java script.
i have two Date Item :P36_A and :P36_B .i have extract these date value from table then difference comes into Text Field :P36_C.
Now i want if i change Date into Item :P36_A or Item :P36_B then Defference between two date Should Come into Item :P36_C .
So i have use Java Script Code to do this
<script>
function diffdat(){
function getVal(item){
if($x(item).value != "")
return parseFloat($x(item).value);
else
return 0;
$x('P36_C').value =
getval((TO_DATE('P36_B', 'DD-MON-YYYY'))-
getval(TO_DATE('P36_A', 'DD-MON-YYYY')))+1;
</script>
i have put this into Item HTML Form Element Attributes
onChange="javascript:diffdat();"it's not woring .
How to work that Code with dates.
ThanksYou can always create your own difference function based on your own criteria. You can modify this to suit your needs.
CREATE OR REPLACE FUNCTION CALC_OFFICE_DAYS(date1 DATE, date2 DATE)
RETURN NUMBER
IS
v_begin_date DATE := date1;
v_end_date DATE := date2;
v_office_start_time VARCHAR2(10) := '09:30 AM';
v_office_end_time VARCHAR2(10) := '06:30 PM';
v_comp_begin_time DATE;
v_comp_end_time DATE;
v_days PLS_INTEGER := 0;
v_hrs NUMBER := 0;
v_ttltm NUMBER;
BEGIN
select trunc(v_end_date) - trunc(v_begin_date)
into v_days
from dual;
select to_date(to_char(sysdate,'DD-MM-YYYY')||' '||to_char(v_begin_date,'HH24:MI'),'DD-MM-YYYY HH24:MI')
into v_comp_begin_time
from dual;
select to_date(to_char(sysdate,'DD-MM-YYYY')||' '||to_char(v_end_date,'HH24:MI'),'DD-MM-YYYY HH24:MI')
into v_comp_end_time
from dual;
select (v_comp_end_time - v_comp_begin_time)/24 into v_hrs from dual;
IF v_hrs > 4 then
v_ttltm := v_days + .5;
ELSE
v_ttltm := v_days;
END IF;
return v_ttltm;
END;
As has been noted, this question is best posted on the PL/SQL forum. -
To find difference between two dates
Hi all,
I am new to this forum and oracle.
I want to get the difference between two dates. My query is as below...
sqlserver_utilities.datediff('YY', startdate,enddate)
I want the difference in year.
Please help me. It's really urgent.
Thanks in advance.
Regards,
InamSelect to_char(enddate,'YY') - to_char(startdate,'YY') fromPLEASE don't do that. There are so many things wrong with it...
for example:
1). Why are you subtracting character data types?
2). What if the start date is 1999 and the end date is 2000? Do you expect to get a difference of -1?
3). What if the start date is 1 Jan 2000 and the end date is 31 Dec 2000? Do you expect to get 0 instead of 1 or .997?
4). Why would you convert dates to something else when they are inherently subtractable.
5). There are obvious points in the OP's "specification" that are vague - the best thing (after telling them to search, of course since this has been answered a million times already) would be to try to clarify the spec.
John -
[Urgent] Need help calculating difference between two dates
I'm trying to write a code to display the current day and time, then accept two dates from the user and display the difference between the two dates. To display the current date and time, I've used the SimpleDateFormatter library but I'm having difficulty calculating the difference between two dates. Could someone please help me with this?
Below is my code so far
import java.util.Date;
import java.util.Scanner;
import java.text.SimpleDateFormat;
public class DateFormatter {
public void displayNow()
Date todaysDate = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
String formattedDate = formatter.format(todaysDate);
System.out.println("Today's date and time is: "+formattedDate);
public void calculateDifference(Date startDate, Date endDate)
/* This is whre i need help! */
public static void main(String[] args)
DateFormatter df = new DateFormatter();
Scanner sc = new Scanner(System.in);
df.displayNow();
System.out.println("Please enter a date: ");
String date1 = sc.next();
System.out.println("Please enter another date: ");
String date2 = sc.next();
}The methods displayNow() and calculateDifference(Date startDate, Date endDate) are essential and cannot be skipped out.tarahmarie101 wrote:
Dude. I've tried doing assignments under pressure, and it doesn't work. Here's a piece of free advice. Start earlier next time, don't put "urgent" in the title of your post b/c it just pisses people off around here--and is a sure sign of an overdue homework assignment which no one around here likes helping with, and try to ask intelligent questions--don't just say "Help me!"
Of course, it takes some time to learn what the intelligent questions are. You have my sympathy. Try asking questions about how to do a particular task, instead of asking people to tell you what to do. It starts to get easier after a while.
actually dude i started on this on monday.. but there were so many other stuff to do along with this.. and i did try referring up the Calendar utility but it was a bit confusing actually.. it was only after that did i come to this forum.. nor am i very good at Java.. anyhoo thanks for your sympathies :P -
How to calculate days between two DATES
How to calculate days between two DATES ?
which is the functional module for that ?
help meHi,
use function module : it works,
HR_HK_DIFF_BT_2_DATES
give output format = 03 and get the value in days.
code is as below :
data : DATE1 type P0001-BEGDA,
DATE2 type P0001-BEGDA,
YEARS type P0347-SCRYY,
MONTHS type P0347-SCRMM,
DAYS type P0347-SCRDD.
date1 = '20070331'.
date2 = '20070101'.
CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'
EXPORTING
DATE1 = date1
DATE2 = date2
OUTPUT_FORMAT = '03'
IMPORTING
YEARS = years
MONTHS = months
DAYS = days
EXCEPTIONS
INVALID_DATES_SPECIFIED = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
write : days.
Reward points, if helpful,
Regards,
Sandeep Kaushik -
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,
CathySELECT 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
-
Safari wont open, it crashes before it opens
i recentally downloaded the new update yesterday and today i cant open safari. when i click on safari on my dock it crashes and wont open at all, please help
-
Where can i find an old version of iphoto?
I recently replaced my hard drive and now need to reinstall iphoto. As I am running 10.3.9 I can't download the recent iphoto on the apple website. I spoke to an apple customer service representative who emailed me the following info: http://www.appl
-
New Yahoo mail reply/forward works with Explorer but not Firefox
Recently switched my Yahoo mail account to New Yahoo Mail. New Yahoo worked fine with Firefox until Firefox update. Now can see my mail but can't reply or forward. As suggested by Yahoo, upgraded both Flash Player & Java Script & also disabled Firefo
-
Cells Ms. Excel ?
I have the necessity to execute a relationship in Ms. excell, using an existing module heading for defined cells of the sheet, you can help me
-
When I compile this code: package DataBase; // Import Java package for File I/O import java.io.*; import java.sql.*; import java.util.*; import javax.naming.NamingException; import javax.sql.*; import oracle.jdbc.driver.*; import oracle.jdbc.pool.*;