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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

الفرق بين تاريخين باليوم والشهر السنة


8 رد (ردود) على هذا الموضوع

#1 ahmedali

ahmedali

    مشترك

  • الأعضــاء
  • 180 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 26 June 2006 - 11:29 AM

إخواني الأعزاء :
طلب من حساب مدة نهاية الخدمة لموظف بحيث تكون على الشكل التالي

كام سنة وكام شهر وكام يوم

قمت بعمل الكود التالي وطبعا السنة مظبوطة ولكن الشهر واليوم مش مضبوطين
والكود كالتالي:
select
ename,
trunc(months_between(sysdate,hiredate)/12) year,
round((months_between(sysdate,hiredate)-trunc(months_between(sysdate,hiredate)))*12) months,
mod((round(sysdate-hiredate)),30) days
from emp;

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

أشكركم جميعا ,

ملفات مرفقة


الابتسامة كلمة طيبة بلا حروف


صفحتي على الفيسبوك

http://www.facebook....BDELAZEEM.M.ALI


#2 blackpanther9090

blackpanther9090

    عضو

  • الأعضــاء
  • 6 مشاركة

تاريخ المشاركة 26 June 2006 - 05:53 PM

select ename , round(months_between(sysdate,hiredate)/12) year,
round((months_between(sysdate,hiredate)/12)*30) monthes,
round((months_between(sysdate,hiredate)/12)*265) days
from emp1
/

#3 moh1412

moh1412

    عضو

  • الأعضــاء
  • 24 مشاركة

تاريخ المشاركة 26 June 2006 - 07:14 PM

select ename,
trunc(months_between(sysdate,hiredate)/12) year,
trunc(mod(trunc(months_between(sysdate,hiredate)/12))) month,
from emp;
بس ما معها ايام لانه انا مش في البيت وما عندي س كيو ال هلا بس انشا الله بحاول ابعتلكياها ما بدي اكتبلك شي غلط بس هدا الكود 100%

تم التعديل بواسطة moh1412, 26 June 2006 - 07:15 PM.


#4 ahmedali

ahmedali

    مشترك

  • الأعضــاء
  • 180 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 26 June 2006 - 07:50 PM

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

declare
sys_day NUMBER;
sys_month NUMBER;
sys_year NUMBER;
st_day NUMBER;
st_month NUMBER;
st_year NUMBER;
begin
SYS_DAY := TO_CHAR(:SERV_FINAL_DATE, 'DD');
SYS_MONTH := TO_CHAR(:SERV_FINAL_DATE, 'MM');
SYS_YEAR := TO_CHAR(:SERV_FINAL_DATE, 'YYYY');
ST_DAY := TO_CHAR(:HIREDATE, 'DD');
ST_MONTH := TO_CHAR(:HIREDATE, 'MM');
ST_YEAR := TO_CHAR(:HIREDATE, 'YYYY');
IF TO_NUMBER(SYS_DAY) < TO_NUMBER(ST_DAY)
THEN
SYS_DAY := TO_NUMBER(SYS_DAY) + 30;
SYS_MONTH := TO_NUMBER(SYS_MONTH) - 1;
END IF;
IF TO_NUMBER(SYS_MONTH) < TO_NUMBER(ST_MONTH)
THEN
SYS_MONTH := TO_NUMBER(SYS_MONTH) + 12;
SYS_YEAR := TO_NUMBER(SYS_YEAR)- 1;
END IF;
:SERV_PER_DAY := TO_NUMBER(SYS_DAY) - TO_NUMBER(ST_DAY);
:SERV_PER_MONTH := TO_NUMBER(SYS_MONTH) - TO_NUMBER(ST_MONTH);
:SERV_PER_YAER := TO_NUMBER(SYS_YEAR) - TO_NUMBER(ST_YEAR);
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
end;

هذا الكود يمكن ينتفع به أي أخ
وتحياتي للجميع الأعضاء في المنتدى الغالي علينا
نفس الكود مرفق في ملف نصي

ملفات مرفقة

  • ملف مرفق  datet.txt   988بايت   157 عدد مرات التحميل

الابتسامة كلمة طيبة بلا حروف


صفحتي على الفيسبوك

http://www.facebook....BDELAZEEM.M.ALI


#5 عبداللطيف

عبداللطيف

    مــشــرف عــام

  • الإشراف العام
  • 1,267 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 27 June 2006 - 01:55 PM

http://www.araboug.o...owtopic=846&hl=

#6 tmiy220

tmiy220

    مشترك

  • الأعضــاء
  • 127 مشاركة

تاريخ المشاركة 27 June 2006 - 08:29 PM

مشكورا على مشاركتك الطيبة

#7 kamal480

kamal480

    مشترك

  • الأعضــاء
  • 118 مشاركة
  • الاهتمامات:oracle database

تاريخ المشاركة 29 June 2006 - 09:47 AM

بسم الله الرحمن الرحيم

اخى الكريم انا عندى نفس الشغلة وهذا الكود شغال ميه المية
declare
year1 number ;
y number;
d number;
m number;
begin year1:=(:END_SERVICE_DATE-:MF_START_DATE);
d:=year1 / 365;
:year:=trunc(d);
d:=year1 mod 365;
m:=d / 30;
:month:=trunc(m);
:day:=d mod 30;
end;
end if;
end;
جربه واعطينى ردك
.... علمت ان رزقى لا ياكلة غير فاطمئن قلبى
..... لو ان الفقر رجلا لقتلته (عمر بن الخطاب رضى الله عنه)

#8 ahmedali

ahmedali

    مشترك

  • الأعضــاء
  • 180 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 29 June 2006 - 09:57 AM

مشكور أخي على استجابتك
بس أنا قمت بعمل الكود السابق وشغال الحمد الله مع تحياتي للجميع

الابتسامة كلمة طيبة بلا حروف


صفحتي على الفيسبوك

http://www.facebook....BDELAZEEM.M.ALI


#9 ابومحمد2008

ابومحمد2008

    عضو

  • الأعضــاء
  • 2 مشاركة

تاريخ المشاركة 23 June 2008 - 08:41 AM

استخدم extract functin

select extract(day from hiredate) from emp;
select extract(month from hiredate) from emp;
select extract(year from hiredate) from emp; :lol: