الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف يمكنني التعامل مع الوقت

Featured Replies

بتاريخ:

الاخوة الاعضاء
كيف يمكنني التعامل مع الوقت ابتداء من الداتابيز
والفورم وانتهاء بالتقارير

بصوره اوضح
لديا برنامج واريد ان اتعامل مع الوقت بحيث استطيع ان اظهر الفرق بين وقتين مختلفين
مثلا
الوقت الاول هو : 10:09:32
الوقت الثاني هو : 7:59:33

في هذه الحالة هل اقوم بتعريف الوقت في الداتابيز على انه Date
وكيف استطيع التعامل معه في الفورم

بتاريخ:

ماجدولين لم يفهم المطلوب بشكل واضح ولكن للمعلومية في حال اردت حساب الوقت يكون كما ذكرت عمل حقل من نوع date في الداتا بيز ويتم تغييره الى time ويتم اعطاء format له hh:mm:ss ومن ثم يتم اجراء عملية الطرح من الحقلين ووضع الناتج غي حقل من نوع time واتمنى افادتك ولو بالشيء اليسير

بتاريخ:

تعديل بسيط على كود كان قد ارفقه الاخ عبد اللطيف


SQL> CREATE OR REPLACE FUNCTION TIME_difference( p_start_date IN DATE,p_end_date IN DATE )
 2  RETURN VARCHAR2 IS
 3  ln_difference NUMBER := p_end_date - p_start_date;
 4  ln_hours PLS_INTEGER := mod( 24 * ln_difference, 24);
 5  ln_mins PLS_INTEGER := mod( 1440 * ln_difference, 60);
 6  ln_secs PLS_INTEGER := mod( 86400 * ln_difference, 60);
 7  BEGIN 8   RETURN( ' Hours : ' || ln_hours || ' Mins : ' || ln_mins || ' Secs : ' || ln_secs); 
 9  END;
10  /

Function created.

SQL> select TIME_difference(to_date('7:59:33','hh:mi:ss'),to_date('10:09:32','hh:mi:ss'))
 2  FROM DUAL; TIME_DIFFERENCE(TO_DATE('7:59:33','HH:MI:SS'),TO_DATE('10:09:32','HH:MI:SS'))
--------------------------------------------------------------------------------
Hours : 2 Mins : 10 Secs : 59

بتاريخ:

ياريت تفاصيل اكتر عن الفكره دي يامجدولين

بتاريخ:

عرف حقل من نوع Date وفي النموذج أدرج حقل وأربطه به ... ومن ثم غير خاصية FormatMask الي القيمة HH24:MI:SS .

أما بخصوص الطرح يجب عليك النظر في شيء مهم وهو أن اليوم يبدأ من الساعة 00:00:00 وينتهي 11:59:59 ... لكن المشكلة أن اليوم بيختلف ... يعني مثلاً لو كان اليوم الأول هو 24/9/1981 والثاني 25/2/1999 فالفارق هيكون كبير جداً ... يتعني لازم تحط في إعتبارك هذه المشكلة .

عموماً عملية الطرح بتتم عادي جداً كما يلي :

(Fld2 - Fld1) As SubDate





بالتوفيق

بتاريخ:
  • كاتب الموضوع

اشكركم جميعا على هذه الحلول
لكني الان اصبحت تائهة اكثر
انا ارى ان الحلول متناقضة ايهما ساستعين بها
الاخ جود اعطى فكره نظرية عن الموضوع

الاخ -=|mOOdY|=- جاب خلفية ممتازه عن الموضوع واعجبتني فكرته وساحاول تنفيذها

الاخ malam_eldin مش كافي اني ازعجتك في الريبورت وتبغاني ازعجك في الفورم
ان شاء الله اخلص من الريبورت واتفرغ معك للفورم هههه
المشرف MMA جعل الفكره بسيطة - ولكنها غامضة في نفس الوقت لا اعرف ماذا يقصد
على العموم يفترض ان نجرب الفكره على مثال في الفورم ونقوم بتحميلها الى الموقع وسيكون الشرح اكثر بلاغة ووضوح

سؤالي بشكل نظري هو --->
نفترض ان تاريخ ميلادك هو 10/11/1985 الساعة 4:53:20
ونريد ان نوجد كم عمرك بالضبط بالساعة الى تاريخ 20/08/2008 الساعة 08:20:00
الاخ malam_eldin اعتقد ان السؤال اصبح واااااضح ؟
اشكركم جميعا

بتاريخ:

أنظر الي الكود التالي :

CREATE TABLE EMP
(
  EMP_NO	NUMBER(10),
  EMP_NAME VARCHAR2(20),
  EMP_BDATE  DATE,
  CONSTRAINT PK_EMP PRIMARY KEY(EMP_NO)
)
/

INSERT INTO EMP VALUES(1,'Ahmed',TO_DATE('10/11/1985 4:53:20','DD/MM/YYYY HH24:MI:SS'));

SELECT ((SYSDATE - EMP_BDATE) * 24) AS AGE FROM EMP;




أما بخصوص الغموض التي تحدث عنه فأنا لم أقصد أي غموض علي الإطلاق !!!

حضرتك قمت بإدراج أبسط مثال وهو إيجاد الفرق بين تاريخين بعيدين عن بعض بالساعة ... لكن الي أنا أقصدة هو الساعات اليومية مثل الحضور والإنصراف !!!

مش معقولة أن الشركة يكون بداية يومها الساع 00:00:00 ص ... لكن بالطبع بداية اليوم بيكون بداية أول وردية الساعة ( 8 ص ) وطبعاً نهايتها اليوم التالي الساعة ( 8 ص ) وحسب سياسة الشركة نفسها !!!

إذاً في هذه الحالة لو حبيت تحسب الفرق بين بداية ونهاية عمل موظف محدد يجب الأخز في الأعتبار هذه الجزئية ... أن اليوم بيبدأ الساعة 8 من اليوم الحالي وبينتهي في نفس الموعد لليوم التالي ( وهذا هو ما كنت أقصدة ) .




بالتوفيق

بتاريخ:

بالنسبة لحلك صحيح جدا على اساس لو ماجدولين عايز تخزن الوقت في الداتا بيز اما غير كده فانا عندي فكرة جميلة وسوف اقوم بتحميلها لكم ان شاء الله

وشكرا على مجهودك MMA

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.