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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

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


4 رد (ردود) على هذا الموضوع

#1 رشدي راشد

رشدي راشد

    عضو

  • الأعضــاء
  • 31 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 April 2010 - 05:48 PM

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

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

تم التعديل بواسطة رشدي راشد, 13 April 2010 - 05:55 PM.


#2 mostfa_future

mostfa_future

    عضو مميز

  • الأعضــاء
  • 570 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 April 2010 - 10:23 PM

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;

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

لا تحسبن المجد تمرا أنت اكله *** لن تبلغ المجد حتى تلعق الصبر


صورةصورة


#3 رشدي راشد

رشدي راشد

    عضو

  • الأعضــاء
  • 31 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 April 2010 - 10:40 PM

مشكور
الله يعطيك ألف عافية
جزاك الله كل خير


#4 أحمد جادو

أحمد جادو

    عضو نشط

  • الأعضــاء
  • 244 مشاركة
  • الاسم الأول:أحمد
  • اسم العائلة:جادو
  • البـلـد: Country Flag
  • المنصب الحالي:Senior Oracle Developer @ Alhasa Municipality

تاريخ المشاركة 14 April 2010 - 11:59 AM

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;


- أحمد جادو -
Senior Oracle Developer
Alhasa
Municipality

Alhasa - Saudi Arabia


#5 رشدي راشد

رشدي راشد

    عضو

  • الأعضــاء
  • 31 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 15 April 2010 - 12:58 AM

مشكور ياخوي
جزاك الله كل خير