رشدي راشد بتاريخ: 13 أبريل 2010 تقديم بلاغ مشاركة بتاريخ: 13 أبريل 2010 (معدل) مرحبا بأخواني العزاء اليوم الأستاذ اعطانا سؤال انا ماعرفت احلهارجو المساعدة في حل سؤال السؤال :باستخدام الفانكشن احسب بدايه تاريح تعيني - تاريخ اليوم = يظهر لي باليوم والشهر والسنه كم لي من التعيين..يعني باستخدام function احسب بداية تاريخ تعين شخص ناقص تاريخ اليوم يظهر الي الجواب باليوم والشهر والسنةيعني أكم صلي متعين..... تم تعديل 13 أبريل 2010 بواسطة رشدي راشد اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mostfa_future بتاريخ: 13 أبريل 2010 تقديم بلاغ مشاركة بتاريخ: 13 أبريل 2010 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; طبعا الناتج تقريبا و بالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
رشدي راشد بتاريخ: 13 أبريل 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 13 أبريل 2010 مشكور الله يعطيك ألف عافيةجزاك الله كل خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أحمد جادو بتاريخ: 14 أبريل 2010 تقديم بلاغ مشاركة بتاريخ: 14 أبريل 2010 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; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
رشدي راشد بتاريخ: 14 أبريل 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 14 أبريل 2010 مشكور ياخويجزاك الله كل خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.