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

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

صورة
- - - - -

لماذا هذا الكود لا يعمل


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

#1 abd l rahman

abd l rahman

    مشترك

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

تاريخ المشاركة 12 August 2006 - 02:15 PM

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

SELECT last_name, TO_CHAR(hire_date, 'DD-Mon-YYYY')
FROM  employees
WHERE hire_date < TO_DATE('01-Jan-90','DD-Mon-RR');

وهذا هو الخطأ

WHERE hire_date < TO_DATE('01-Jan-90','DD-Mon-RR')
                          *
ERROR at line 3:
ORA-01843: not a valid month


#2 الصالحي

الصالحي

    عضو

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

تاريخ المشاركة 12 August 2006 - 04:04 PM

الخطأ في الFormat للتاريخ
الصح أن تكتب:
where hire_date < To_date('01-Jan-90','dd-Mon-yy')

#3 abd l rahman

abd l rahman

    مشترك

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

تاريخ المشاركة 12 August 2006 - 04:41 PM

السلام عليكم
جزاك الله خيرا يا اخي لاكن خطأ لم يتغيير علما بان هذا الكود انا اخذته من كتاب اوراكل يونيفرسيتي بالنص ولاكني لا اعلم ما المشكلة

#4 MoHaNnEd

MoHaNnEd

    عضو

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

تاريخ المشاركة 13 August 2006 - 12:06 AM

على فكرة انا جربت لقيت فعلا نفس المشكلة
ياريت حد يفيدنا

#5 Moh_Ora

Moh_Ora

    عضو

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

تاريخ المشاركة 13 August 2006 - 12:18 PM

استخدم To_Char بدل من To_Date
Moh_Ora

#6 rezeq_nazzal

rezeq_nazzal

    عضو

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

تاريخ المشاركة 13 August 2006 - 12:40 PM

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

SELECT last_name, TO_CHAR(hire_date, 'DD-Mon-YYYY')
FROM  employees
WHERE hire_date < TO_DATE('01-Jan-90','DD-Mon-RR');

وهذا هو الخطأ

WHERE hire_date < TO_DATE('01-Jan-90','DD-Mon-RR')
                          *
ERROR at line 3:
ORA-01843: not a valid month

عرض المشاركة



#7 rezeq_nazzal

rezeq_nazzal

    عضو

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

تاريخ المشاركة 13 August 2006 - 12:45 PM

انا جربت ما في مشكلة

على كل حال جرب استخدم TRUNC:

WHERE TRUNC(hire_date) < TO_DATE('01-Jan-90','DD-Mon-RR')

#8 abd l rahman

abd l rahman

    مشترك

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

تاريخ المشاركة 15 August 2006 - 05:09 AM

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

#9 hearthouse

hearthouse

    مشترك

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

تاريخ المشاركة 15 August 2006 - 11:10 AM

السلام عليكم
لقد وجدت عندي نفس الخطأ و لكن الكود الصحيح التمام هو

SELECT last_name, TO_CHAR(hire_date, 'DD-Mon-YYYY')
FROM  employees
WHERE hire_date < TO_date('01/01/1990','dd/mm/yyyy')


و لاحظ اذا لم تقم بأي تغيير في جدول انه يتم عرض 3 صفوف فقط
اما عن السب فهو كالتالي
لابد ان تكون جملة where مكتوب فيها التاريخ كما هو شكلا في قاعدة البيانات لاحظ انني كتبت التاريخ بالصيغة التالية

TO_date('01/01/1990','dd/mm/yyyy')


و اذا اردت ان تستعلم عن صيغة التاريخ في قاعدة البيانات لديك قم بكتابة الQuery التالي

select hire_date from employees



#10 abd l rahman

abd l rahman

    مشترك

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

تاريخ المشاركة 15 August 2006 - 12:36 PM

السلام عليكم ورحمة الله وبركاته
جزاك الله خيرا يا أخ hearthouse
فهذا هو الحل تماما ولاكن الغريب ان هذا المثال من كتاب اوراكل يونيفرسيتي هل هذا خطأ في الكتاب

#11 hearthouse

hearthouse

    مشترك

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

تاريخ المشاركة 16 August 2006 - 02:27 AM

السلام عليكم اخي عبد الرحمن : ليس خطأ في كتاب الاوراكل و لكن ربما كانت اعدادات ال server الخاص بهم و الذي تم الشرح عليه في ذلك الوقت معد بهذه الاعدادات و لقد لاحظت ايضا ان هناك بعض الاستعلامات الاخري لا تعمل ليس في التاريخ و الوقت فقط بل لاحظت ايضا في الامثلة الخاصة بـــ Insert into حيث ان اي استعلام به اي قيمة varchar2 لا تعمل عندي ابدا و لكن السبب هو : كل سيرفر له Unicode خاص به و ال Unicode الخاص بي يختلف عن مثيله لديهم فلذلك عندما اقوم بنسخ مثلا القيمة التالية في جملة Insert into

insert into my_table values('ahmed',Mido')

فإن هذا الكود ينتج عنه خطأ يقول : متغيرات غير مغهومة بالنسبة لقاعدة البيانات و السبب في ذلك هو علامة ' فهي تختلف من اعدادات خادم لاخر و هذا هم السبب ......


و مشكور اخي عبد الرحمن علي المتابعة

#12 abd l rahman

abd l rahman

    مشترك

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

تاريخ المشاركة 16 August 2006 - 04:31 AM

جزاك الله خيرا يا اخ hearthouse
والله الموضوع ده تاعبني جدا

#13 selman0

selman0

    عضو نشط

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

تاريخ المشاركة 16 August 2006 - 02:54 PM

select sysdate from dual
ويعطيك شكل التاريخ فى الداتابيز
واذا لم تكن تريد ان تستخدم ال to_char
اكتب
01
01
2006
http://askelwos.blogspot.com/[color=#3366FF]

#14 amira_ahmed

amira_ahmed

    عضو

  • الأعضــاء
  • 38 مشاركة
  • الاسم الأول:amira
  • اسم العائلة:ahmed
  • البـلـد: Country Flag
  • الاهتمامات:كل ما يخص تكنواوجيا المعلومات
  • المنصب الحالي:developer and apps developer

تاريخ المشاركة 01 April 2015 - 05:30 PM

SELECT TO_CHAR(startdate, 'DD-Mon-YY')
FROM  inter
WHERE startdate < TO_char(startdate,'DD-Mon-yy');