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

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

صورة
- - - - -

استفسار عن دالة Next_day


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

#1 ora_lover

ora_lover

    مشترك

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

تاريخ المشاركة 27 June 2007 - 03:00 AM

الاخوة الاعزاء
السلام عليكم ورحمة الله وبركاته

دالة NEXT_DAY احد دوال التاريخ
المفروض انها تعطى التاريخ القادم لليوم المحدد بها مثلا ( اريد ان اعرف تاريخ يوم الاحد القادم من تاريخ 2/1/2006 )
SELECT NEXT_DAY ('02-01-2006','SUNDAY') FROM dual; 

المفروض انها تعطى تاريخ 8/1/2006
ولكنها تعطى تاريخ 1/1/2006

انظر الصورة
ملف مرفق  _________________.JPG   22.5كيلو   61 عدد مرات التحميل

لكن عندما استخدم الارقام بدلا من اسم اليوم تكون النتيجة صحيحة
SELECT NEXT_DAY ('02-01-2006',2) FROM dual; 

انظر الصورة
ملف مرفق  _________________.JPG   22.26كيلو   49 عدد مرات التحميل

لماذا تعطى هذة النتيجة الغريبة مع استخدام اسم اليوم ولكنها تعطى النتيجة الصحيحة مع استخدام رقم اليوم

ملحوظة يجب ان تكون لغة التاريخ اللغة الانجليزية والا لن تعمل معكم
للاخوة الذين يوجد عندهم التاريخ باللغة العربية يمكن ان يستبدلوا SUNDAY ب الأحد

جزاكم الله خيرا

#2 محمد الشحات

محمد الشحات

    عضو نشط

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

تاريخ المشاركة 27 June 2007 - 05:41 AM

اخى الفاضل
الكود صحيح 100%
والنتيجه صحيحه باستخدام اليوم كتابة وليس رقما
أفضل الذكر " لا اله إلا الله "

#3 ora_lover

ora_lover

    مشترك

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

تاريخ المشاركة 27 June 2007 - 06:05 AM

اخى العزيز
اعرف انه ليس هناك خطأ في الكود

ولكن النتيجة غير منطقية

ولقد ارفقت الصور لتأكيد رأيى

يمكن ان تنفذ عند احد الاخوة وتعطى النتيجة الصحيحة

ولكن لماذا عندما قمت بتنفيذها اعطت النتيجة الموجودة

في الصور

جزاك الله خيرا

تعقيب

النتيجة الموجودة في الصور تظهر فقط عند استخدام يوم الأحد او SUNDAY

وتكون النتيجة طبيعية مع باقى ايام الاسبوع !!!!!!!!!!!!!!!

وشكرا

#4 ora_lover

ora_lover

    مشترك

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

تاريخ المشاركة 27 June 2007 - 09:18 AM

السلام عليكم ورحمة الله وبركاته

اريد ان اوجه نظر الاخوة الى اننى في بداية ال SESSION قمت بعمل هذه الاوامر

ALTER SESSION 
   SET NLS_DATE_FORMAT = 'DD-MON-YYYY';

والأمر


ALTER SESSION 
 SET NLS_DATE_LANGUAGE = English;


واذا خرجت وقمت بعمل اتصال جديد ولم اكتب الاوامر السابقة
تعمل الدالة كما يجب

فما الخطأ في هذة الأوامر وكيف يمكن تلافى هذا العيب

ملحوظة
بداية المشكلة كانت في منتدى SQL
ولكن اعتقد ان حلها سيكون في منتدى DBA

جزاكم الله خيرا