الانتقال إلى المحتوى

ارجو المساعدة : كيف احسب خدمتي الوظيفيه.....


رشدي راشد

Recommended Posts

مرحبا بأخواني العزاء
اليوم الأستاذ اعطانا سؤال
انا ماعرفت احله
ارجو المساعدة في حل سؤال
السؤال :
باستخدام الفانكشن احسب بدايه تاريح تعيني - تاريخ اليوم =
يظهر لي باليوم والشهر والسنه كم لي من التعيين..

يعني باستخدام function احسب بداية تاريخ تعين شخص
ناقص تاريخ اليوم يظهر الي الجواب باليوم والشهر والسنة
يعني أكم صلي متعين.....

تم تعديل بواسطة رشدي راشد
رابط هذا التعليق
شارك

CREATE OR REPLACE function GET_date (V_date_1  date , V_date_2 date) RETURN VARCHAR2  IS
N   VARCHAR2(100);
xx number(20);
r_eare  number(20):=0;
r_mon  number(20):=0;
begin xx:= V_date_1  -  V_date_2  ;
if xx >365 then
loop
xx := xx - 365 ;
r_eare :=r_eare + 1;
EXIT WHEN xx<365 ;
end loop;
end if ;
if xx >30 then
loop
xx:=xx-30 ;
r_mon:=r_mon  +1;
EXIT WHEN xx<30;
end loop;
end if ;
n:='عدد السنين' ||  r_eare ||'عددالاشهر' ||r_mon ||'عدد الايام' ||xx;
RETURN (n);
END;
/
show errors
*************************
DECLARE
N   VARCHAR2(100);
begin n:= GET_date('17-DEC-80 ' ,'17-DEC-70' ); 
DBMS_OUTPUT.PUT_LINE(n);
END;


طبعا الناتج تقريبا
و بالتوفيق

رابط هذا التعليق
شارك

CREATE OR REPLACE FUNCTION date_by_days (date_to DATE, date_from DATE)
  RETURN VARCHAR2
IS
  yr_days   VARCHAR2 (100);
BEGIN
  SELECT	TRUNC (MONTHS_BETWEEN (date_from, date_to) / 12)
	  || ' Years - '
	  || MOD (TRUNC (MONTHS_BETWEEN (date_from, date_to)), 12)
	  || ' Months - '
	  || ROUND (MOD (MOD (ROUND ((date_from - date_to)), 365.25),30.4375))
	  || ' Days'
 INTO yr_days
 FROM DUAL;
  RETURN yr_days;
END;
/
show errors

-----------------------------------------------------------------
-----------------------------------------------------------------

select date_by_days('10/01/2006', sysdate) from dual;
-----------------------------------------------------------------
4 Years - 3 Months - 3 Days



وإذا كنت تريد استعلام عادي بدون فانكشن استخدم الكود التالي

SELECT	TRUNC (MONTHS_BETWEEN (:date_from, :date_to) / 12)
   || ' Years - '
   || MOD (TRUNC (MONTHS_BETWEEN (:date_from, :date_to)), 12)
   || ' Months - '
   || ROUND (MOD (MOD (ROUND ((:date_from - :date_to)), 365.25), 30.4375))
   || ' Days' days
 FROM DUAL;

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية