بتاريخ: 13 أغسطس 200520 سنة comment_44554 هل توجد دالة تقوم طرح وقت من وقت اخر وتكون النتيجة الوقت الفارقمثال 10:30:10 - 10:45:5 = 0:15:5وفي حالة عدم وجود هذة الدالة فك كيف يمكن ان يحسب الوقت الفارق تقديم بلاغ
بتاريخ: 13 أغسطس 200520 سنة comment_44574 يمكنك استخدام حقول من نوع timestamp لاجراء مثل هذه العملية أو يمكنك تحويل القيمة من شكل حرفي الى timestampselect to_timestamp('10:45:51','hh24:mi:ss')-to_timestamp('10:30:10','hh24:mi:ss') from dual تقديم بلاغ
بتاريخ: 13 أغسطس 200520 سنة كاتب الموضوع comment_44579 شكرا لك يا اخ motasem علي الردلكن حاولت انفذ هذة الطريقة في شاشة ال SQL+ وحدث الخطأ التالي ERROR at line 1:ORA-00904: invalid column nameحيث كان يعترض علي الامر to_timestamp('10:45:51','hh24:mi:ss') تقديم بلاغ
بتاريخ: 13 أغسطس 200520 سنة كاتب الموضوع comment_44586 نسخة الاوراكل 8.1.7.0.0 و اقوم بتنفيذ الامر في شاشة ال SQL PLUS تقديم بلاغ
بتاريخ: 13 أغسطس 200520 سنة comment_44595 الاخ الكريمالنسخة من ال sql لا تعرف هذا التعريف وانما يتم تطبيقها في اوراكل 9iيعني غير متعارف على to_time_stamp في sql 8iواليك هذا الرابط لعله يفيدhttp://www.psoug.org/reference/timestamp.html تقديم بلاغ
بتاريخ: 13 أغسطس 200520 سنة كاتب الموضوع comment_44599 شكرا لكم على تعاونكم لقد قمت بكتابة دالة تقوم بعمل الطرح بين وقتين واليكم هذة الدالة و انشاء اللة ان تكون نافعة للجميعفقط قم بوظع الكود في الفورم في program unit FUNCTION SUB_TIME(T1 VARCHAR2, T2 VARCHAR2) RETURN VARCHAR2 IS HH1 NUMBER(4):=0; MI1 NUMBER(4):=0; SS1 NUMBER(4):=0; HH2 NUMBER(4):=0; MI2 NUMBER(4):=0; SS2 NUMBER(4):=0; NEW_HH NUMBER(4):=0; NEW_MI NUMBER(4):=0; NEW_SS NUMBER(4):=0; NEW_TIME VARCHAR(12):=0; BEGIN HH1:=TO_NUMBER(SUBSTRB(T1,1,2)); MI1:=TO_NUMBER(SUBSTRB(T1,4,2)); SS1:=TO_NUMBER(SUBSTRB(T1,7,2)); HH2:=TO_NUMBER(SUBSTRB(T2,1,2)); MI2:=TO_NUMBER(SUBSTRB(T2,4,2)); SS2:=TO_NUMBER(SUBSTRB(T2,7,2)); NEW_HH:=HH1-HH2; NEW_MI:=MI1-MI2; NEW_SS:=SS1-SS2; IF NEW_HH < 0 THEN NEW_HH:=NEW_HH * -1; END IF; IF NEW_MI < 0 THEN NEW_MI:=NEW_MI * -1; END IF; IF NEW_SS < 0 THEN NEW_SS:=NEW_SS * -1; END IF; NEW_TIME:=NEW_HH || ':' || NEW_MI || ':' || NEW_SS; RETURN NEW_TIME; END; ولكم الشكر تقديم بلاغ
بتاريخ: 13 أغسطس 200520 سنة comment_44617 select lpad(trunc ( to_date('10:45:05','HH:MI:SS')- to_date('10:40:01','HH:MI:SS') )*24,2,'0')||':'|| lpad(trunc(( ( ( to_date('10:45:05','HH:MI:SS')- to_date('10:40:01','HH:MI:SS') )*24 ) - ( trunc( to_date('10:45:05','HH:MI:SS')- to_date('10:40:01','HH:MI:SS') )*24 ) )*60),2,'0')||':'|| lpad(trunc(( (( to_date('10:45:05','HH:MI:SS')- to_date('10:40:01','HH:MI:SS') )*24*60)- trunc(( to_date('10:45:05','HH:MI:SS')- to_date('10:40:01','HH:MI:SS') )*24*60) )*60),2,'0') from dual تقديم بلاغ
بتاريخ: 6 فبراير 201214 سنة comment_220428 شكراً لك ياأستاذ معتصملقد جربت الإسكربت ونجح جزاك الله خيراً تقديم بلاغ
بتاريخ: 12 فبراير 201214 سنة comment_220639 السلام عليكم و رحمة الله و بركاتهطريقة جيدة، و بارك الله فيكمو يوجد طريقة أخرى أيضا كالتالي: SELECT to_number( to_char(to_date('1','J') + (TO_DATE('10:45:15','HH24:MI:SS') - TO_DATE('10:30:05','HH24:MI:SS')), 'J') - 1) days, to_char(to_date('00:00:00','HH24:MI:SS') + (TO_DATE('10:45:15','HH24:MI:SS') - TO_DATE('10:30:05','HH24:MI:SS')), 'HH24:MI:SS') time FROM DUAL تقديم بلاغ
بتاريخ: 2 سبتمبر 20205 سنة comment_300956 في ١٣/٨/٢٠٠٥ at 12:08, motasem said: يمكنك استخدام حقول من نوع timestamp لاجراء مثل هذه العملية أو يمكنك تحويل القيمة من شكل حرفي الى timestamp select to_timestamp('10:45:51','hh24:mi:ss')-to_timestamp('10:30:10','hh24:mi:ss') from dual كيف من الممكن أن احسب الفرق بين توقيتين في يومين مختلفين مثلا وقت النهاية يوم ٤/٩/٢٠٢٠ الساعة ٠٢:٤٥ صباحاً وقت البداية يوم ٣/٩/٢٠٢٠ الساعة ٢٣:٣٠ مساءً تقديم بلاغ
بتاريخ: 11 نوفمبر 20205 سنة comment_301135 بارك الله فيكم جميعا والله عمل جميل ورائع أما إذا كان إضافة عدد إلى تاريخ معين مثل عطلة الإجازة+ عدد أيام الإجازة تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.