colla بتاريخ: 30 مارس 2009 تقديم بلاغ مشاركة بتاريخ: 30 مارس 2009 بسم الله الرحمن الرحيم اليوم ياشباب جايبلي طريقه سهله ومريحه لمعرفة الفرق بين تارخين بشرط باليوم والشهر والسنة ياشباب فأنا لا أدعي المعرفه ولكن لكل مجتهد نصيب فأرجو من كل يطبق هذا الاستعلام إن كان لديه طريقة افضل ان يشاركنا بها create table t ( end_date date, start_date date ); insert into t values ( '10-FEB-2000', '02-JAN-1999' ); insert into t values ( '02-FEB-2000', '10-JAN-1999' ); select months_between( end_date, start_date ), trunc( months_between( end_date, start_date ) /12 ) Years, mod( trunc( months_between( end_date, start_date ) ), 12 ) months, end_date - add_months(start_date,trunc( months_between( end_date,start_date ) )) days from t; --------------------- MONTHS_BETWEEN(END_DATE,START_DATE) YEARS MONTHS DAYS ----------------------------------- ---------- ---------- ---------- 13.2580645 1 1 8 12.7419355 1 0 23 end_date date start_date date '10-FEB-2000' '02-JAN-1999' how to calculate the day : step (1) : select months_between( end_date,start_date ) days from t; --------------- DAYS ---------- 13.2580645 step (2) : select trunc( months_between( end_date,start_date )) days from t; -------------------- DAYS ---------- 13 step (3) : select add_months(start_date,trunc( months_between( end_date,start_date ) )) days from t; ----------------------- DAYS -------------------- 02-FEB-2000 12:00:00 step (4) : select end_date - add_months(start_date,trunc( months_between( end_date,start_date ) )) days from t; ---------------------- DAYS ---------- 8 ولا تنسونا من صالح تعليقاتكم ودعواتكم http://rapidshare.com/files/215276325/deff...ween_2_date.txt 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 30 مارس 2009 تقديم بلاغ مشاركة بتاريخ: 30 مارس 2009 السلام عليكم شكرا لك على الجهد المتميز جزاك الله خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hrs بتاريخ: 31 مارس 2009 تقديم بلاغ مشاركة بتاريخ: 31 مارس 2009 تسلم اخي .. nice way to find the no. of daysfor me it was new thingyour way in disc. also nice thank you very much اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mk3bmw بتاريخ: 31 مارس 2009 تقديم بلاغ مشاركة بتاريخ: 31 مارس 2009 بدك الصراحة لسه كنت بحسب معدل أعمار الموظفين بالشركة ولقيت مشاركتك بالصدفة ، أشكرك جزيل الشكر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
colla بتاريخ: 6 يوليو 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 يوليو 2009 حل آخر وبالتوفيق للجميع : select (trunc(months_between(sysdate, '30-JUN-2007')) /12)*365 Day, trunc(months_between(sysdate, '30-JUN-2007')) months, trunc(months_between(sysdate, '30-JUN-2007')) /12 Year from dual 2 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
colla بتاريخ: 6 يوليو 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 يوليو 2009 الحل الجديد اسهل من الي راح وبعد كذا الله اعلم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hima123 بتاريخ: 6 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 6 يوليو 2009 تسلم يالغالي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ahmedelsayed14 بتاريخ: 29 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 29 أغسطس 2009 انا كنت حاولت احل السؤال دا قبل كدا .. ووصلت لحل بنفس الفرة تقريبا و لكن راحت من على بالى دالة MOD خالص فاضطريت اعمل SUBSTR و ادور جواها على INSTR SELECT HIREDATE, TRUNC(MONTHS_BETWEEN(SYSDATE,HIREDATE)/12) YEARS, TRUNC(SUBSTR(MONTHS_BETWEEN(SYSDATE,HIREDATE)/12,INSTR(MONTHS_BETWEEN(SYSDATE,HIREDATE)/12,'.'))*12) MONTHS, TRUNC(SUBSTR(MONTHS_BETWEEN(SYSDATE,HIREDATE),INSTR(MONTHS_BETWEEN(SYSDATE,HIRED ATE),'.'))*30) DAYS FROM EMP; جزاكم الله خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ahmedelsayed14 بتاريخ: 29 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 29 أغسطس 2009 بالنسبة للحل الاخر بيحسب المدة الزمنية كاملة بالاياموبعدين المدة كاملة بالشهورو بعدين المدة كاملة بالسنين ..و الا ما كانش حد غلب اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
جلال شواقفه بتاريخ: 29 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 29 أغسطس 2009 شكرا لكم جميعاعلى الكود اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmad.Hasan بتاريخ: 29 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 29 أغسطس 2009 يعطيك العافيه أخي..الى الامام.. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
developer 10g بتاريخ: 13 يوليو 2010 تقديم بلاغ مشاركة بتاريخ: 13 يوليو 2010 بجد نفعتنى كتير فى عمليه حسابيه بالنسبه لى بجد شكراااا يااخوانى اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
MTSHAJALI بتاريخ: 13 يوليو 2010 تقديم بلاغ مشاركة بتاريخ: 13 يوليو 2010 (معدل) SELECT TRUNC(MONTHS_BETWEEN('30-AUG-2010',SYSDATE)) MONTHS,TRUNC((months_between('30-JUL-2010',sysdate)) /12*365) Day,trunc(months_between('30-JUL-2010',sysdate )) /12 FROM DUAL;هذا هو الكود الصحيح بالتحديد لحساب الايامحيث كان فيها خطأ بسيط وقمت بتلوينه باللون الاحمر تم تعديل 13 يوليو 2010 بواسطة rose_4_pretty اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmad.Hasan بتاريخ: 13 يوليو 2010 تقديم بلاغ مشاركة بتاريخ: 13 يوليو 2010 مشكور يا معتز...واهلا بعودتك.. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
colla بتاريخ: 18 نوفمبر 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 18 نوفمبر 2010 اشكركم يا اخوان على كلامكم الطيب وحقيقه تشرفت بحضوركم وتعليقاتكم في هذا الموضوع اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
انريكي بتاريخ: 19 نوفمبر 2010 تقديم بلاغ مشاركة بتاريخ: 19 نوفمبر 2010 جزااااااكم الله ألف خيرررررر جميعاً يا أخواااان على الحلول الرائعه كل الشكر لكم .. تقبلوا تحيااااااااتي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
HGAGG بتاريخ: 24 نوفمبر 2010 تقديم بلاغ مشاركة بتاريخ: 24 نوفمبر 2010 أنا وصلت لحل آخر بيطلع الناتج عبارة عن عدد الشهور و الأيام و الأسابيع و السنين....إلخ بين تاريخين بمعنا أنا عندي تاريخ الميلاد 25/5/1988 و تاريخ اليوم 24/11/2010الكود إللي توصلت له بفضل الله هيجين كام يوم بين التاريخين 32400 يوم وكام إسبوع 1080 أٍسبوع وكام شهر 270 شهر وكام سنة 22,5 سنة.....إلخالكود: select round(months_between(sysdate, '25/05/1988'))/12 as السنين, round(months_between(sysdate, '25/05/1988')) as الشهور, round(months_between(sysdate, '25/05/1988'))*4 as الأسبيع, round(months_between(sysdate, '25/05/1988'))*4*30 as اليوم, round(months_between(sysdate, '25/05/1988'))*4*30*24 الساعات, round(months_between(sysdate, '25/05/1988'))*4*30*24*60 الثواني, round(months_between(sysdate, '25/05/1988'))*4*30*24*60*60 الاحظات, add_months('25/05/1988', 276)as الميلاد, to_char(sysdate, 'day - month - yyyy ')تفقيط from dual اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
colla بتاريخ: 27 نوفمبر 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 27 نوفمبر 2010 جزاك الله خير يا اخ HGAGG على هذه المشاركه الطيبة اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.