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