الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مثال لمعرفة الفرق بين زمنين

مغلق
بدأه فارس عبد الله في 26 فبراير 2003 · 3 رد · 869 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

نفرض لدينا ثلاث TEXT ITEM وليكن الاول BEGINTIME (زمن البداية)والثانى ENDTIME (زمن النهاية)والثالث DEFTIME (الفرق بين الزمنين) يجب ان يكون نوع الحقول الثلاثة السابقة رقمية وضع للحقل DEFTIME الخاصية FORMAT MASK =00.00 ضع الشفرة التالية على الحدث POST CHANGE للحقل ENDTIME:-

declare

     def1 float(2);

     def2 float(2);

begin	

   :DEFTIME:='';

 	 def1:=(:BEGINTIME ) -floor(:BEGINTIME );

 	 def2:=(:ENDTIME ) -floor(:ENDTIME );

 	 if def1>def2  then

       :DEFTIME:=(:ENDTIME)-(:BEGINTIME+00.40);

    else

      :DEFTIME:=(:ENDTIME)-(:BEGINTIME);

   end if;  

end;

ولاتنسونا من الدعاء

سبحان الله و الحمد لله لا اله الا الله و الله اكبر

#2

جزاك الله خيرا أخوي فارس عبدالله

بس في جزء من الكود ما فهمته وهو لماذا تضيف 00.40 للفرق في حالة def1>def2

أتمنى منك شرح هذه النطة

أو الكود بكامله إذا مافيها مضيعة وقت

وجزاك الله خيرا مرة أخرى

#3

أخوي فارس عبدالله جربت أنا جربت هذا الكود

--declare

--     def1 float(2);

--     def2 float(2);

--begin	

 --   :DEFTIME:='';

 --  def1:=(:BEGINTIME ) -floor(:BEGINTIME );

 --  def2:=(:ENDTIME ) -floor(:ENDTIME );

 --  if def1>def2  then

 --      :DEFTIME:=(:ENDTIME)-(:BEGINTIME+00.40);

 --   else

      :DEFTIME:=(:ENDTIME)-(:BEGINTIME);

 --    end if;  



--end;

واشتغل تمام فقط عملت أنواع الحقول من النوع Time

#4

1-الجزء 00.40 وذلك لانه فى حالة الاستلاف فى حالة الطرح فان الواحد المستلف يعتبر من 100 ليس من 60 وذلك لاننى استخدم نوع الحقل رقمى وذلك لان sql لدى لايدعم تعريف بيانات من النوع time وشكراً اخى;);)

سبحان الله و الحمد لله لا اله الا الله و الله اكبر

هذا الموضوع مغلق.

مواضيع مشابهة