الانتقال إلى المحتوى

انقاص تاريخين من بعض


Mo7B

Recommended Posts

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

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته،،
اولا : العمليات التى تجرى على التاريخ هى :
بفرض ان التا ريخ الحالى هو 25-11-2004
---------------------------------------------------------------------------------------
تاريخ + رقم = تاريخ مثال : ( (25-11-2004)+ 10 = ( 5 -12-2004) )
---------------------------------------------------------------------------------------
تاريخ - رقم = تاريخ مثال : ( (25-11-2004) - 5 = (20 -11-2004) )
--------------------------------------------------------------------------------------
تاريخ - تاريخ = ايام (عدد الايام الفرق بين التاريخين لا حظ انه لو كان التاريخ الا ول صغير فان قيمنة الناتج ستكون بالسالب )
مثال : ( (25-11-2004)- (10-12-2005) = 15 )
----------------------------------------------------------------------------------
بالنسبة لعملية الطرح يمكنك استخدام
( Function ( MONTHS_BETWEEN (date1, date2
وهى تقوم بعملية الطرح بين تاريخين هما date1, date2 لاحظ انا التا ريخ الا كبر قيمة او الا حدث هو الا ول
و الثانى هو الا قدم فالناتج فى هذه الحالة موجب و لو العكس يكون الناتج بقيمة سا لبة
انت تريد استخدام تاريخ الجهاز SYSDATE تعامل مع تاريخ الجهاز على انه تاريخ مثال:

SELECT employee_id, hire_date,
MONTHS_BETWEEN (SYSDATE, hire_date)) from employees;


الناتج يكون رقم الموظف و تاريخ تعينه و ناتج طرح تاريخ تعينه من تاريخ الجهاز (فترة عمله منذ بداية تعينه)
فلو ان مثلا تاريخ الجهاز هو 25-11-2004 وتاريخ التعيين (hire_date) هو 10-10-2003 ناتج الطرح يكون عدد الايام الفق بين التاريخين و هو 412 يوم

ادعو الله ان اكون قد اجبت على سؤالك

تم تعديل بواسطة bedooracle
رابط هذا التعليق
شارك

مشكور اخي bedooracle

بالنسبة للأمثلة التي ضربتها للعمليات الحسابية والمنطقية للتأريخ يتضح إن التغيير يجري على الايام فقط

مثلاً عندما اطبع التاريخ الحالي + 10 فإنه يزيد من عدد الأيام

فإذا كنت اريد أن تكون الزيادة في الشهور والسنين

هل هناك دوال خاصة لذلك

ارجو التوضيح

وشكراً

تم تعديل بواسطة developer9
رابط هذا التعليق
شارك

شكراً اخي bedooracle على هذه الامثلة

اخي بالنسبة للامثلة التي ضربتها توضح العمليات الحسابية والمنطقية على التأريخ ولكن على الايام فقط

فإذا اردت ان تكون العمليات ( من جمع وطرح ) شهور او سنين

هل هناك دوال خاصه ام ماذا

وتقبل تحياتي ...

رابط هذا التعليق
شارك

[ALIGN=left]Date function on oracle
هذه مجموعة من الـ function التى تتعا مل مع قواعد البيا نات فى اوراكل :
1- MONTHS_BETWEEN(date1, date2) :
و تستخدم لمعرفة عد د الاشهر بين تاريخين date1, date2 مع ملاحظة ان النا تج ممكن ان يكون موجب او سالب و ذلك يتوقف عليه قيمة التا ريخ الاول كما وضحت من قبل مثا ل :

MONTHS_BETWEEN (’01-SEP-95’,’11-JAN-94’)
= 19.6774194

SELECT employee_id, hire_date,
MONTHS_BETWEEN (SYSDATE, hire_date) from employees ;




2- ADD_MONTHS(date, n) :
تقوم هذه الـ Function باضافة عدد من الا شهر على تاريخ معين ( n) مع ملاحظة ان قيمة n لا بد ان تكون قيمة موجبة لا تستطيع ان تضع قيمة سالبة مثا ل:
ADD_MONTHS (’11-JAN-94’,6)
= ’11-JUL-94’

SELECT employee_id, hire_date ,
ADD_MONTHS (hire_date, 6) REVIEW,from employees

;


3- NEXT_DAY(date, 'char') :
تقوم هذه الـ Function بمعرفة تاريخ يوم معين بمعنى اوضح عندما تريد معرفة تاريخ مثلا .
اول بوم جمعة فى تاربخ معين
( مثلا عابز تعرف امتى اول يوم جمعة هيجى بعد تاريخ النهارده 27-11-2004 هيكون تاريخه يوم 5-12-2004 )
مثال :

NEXT_DAY (’27-NOV-04’,’FRIDAY’)
'5-DEC-2004'=

4- LAST_DAY(date) :
وهى تقوم بمعرفة اخر يوم فى شهر معبن date مثال :
LAST_DAY(’01-NOV-04’)
= ('30-NOV-04 ')</div>

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

Date_function_on_oracle.doc

تم تعديل بواسطة bedooracle
رابط هذا التعليق
شارك

جزاك الله خير على المعلومات هذى ولكن اخوي انا ابغى الناتج
ناتج طرح الجملة التالية يكون
11-OCT-2004

SELECT employee_id, hire_date,
MONTHS_BETWEEN (SYSDATE, hire_date) from employees ;




اذا كان الشي هذا ممكن

رابط هذا التعليق
شارك

يعني اريد الناتج يكون تاريخ محدد مش ارقام
هنا مثال

انقصناتاريخ الجهاز من تاريخ التعيين كان الناتج كما يلي

SELECT empno, hiredate,
MONTHS_BETWEEN (SYSDATE, hiredate) from emp; EMPNO HIREDATE  MONTHS_BETWEEN(SYSDATE,HIREDATE)
----- --------- --------------------------------
7369 17-DEC-80                        275.53888
7499 20-FEB-81                         273.4421
7521 22-FEB-81                        273.37759
7566 02-APR-81                              272
7654 28-SEP-81                        266.18404
7698 01-MAY-81                        271.05501
7782 09-JUN-81                        269.79694
7788 19-APR-87                        199.47436
7839 17-NOV-81                        264.53888
7844 08-SEP-81                         266.8292
7876 23-MAY-87                        198.34533
7900 03-DEC-81                        263.99049
7902 03-DEC-81                        263.99049
7934 23-JAN-82                        262.34533


انا اريد الناتج يكون تاريج مو ارقام هل ممكن الشي هذا
اوضح بمثال ولا ياخذ انه صحيح

EMPNO HIREDATE  MONTHS_BETWEEN(SYSDATE,HIREDATE)
----- --------- --------------------------------
7369 17-DEC-80                        11-oct-2004



هل ممكن الشي هذا

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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